Guide d’utilisation de
© 2021 Is Daouda Games
2
Contenu
1. Introduction ............................................................................................................................................................................................ 18
2. A propos du moteur ............................................................................................................................................................................... 18
3. Structure du moteur ............................................................................................................................................................................... 18
3.1 app_src................................................................................................................................................................................................ 18
3.2 isEngine .............................................................................................................................................................................................. 19
3.3 assets .................................................................................................................................................................................................. 19
3.4 Fichier main.cpp ................................................................................................................................................................................ 19
3.4.1 main ............................................................................................................................................................................................... 19
3.4.2 game.play ...................................................................................................................................................................................... 19
3.4.3 game.basicSFMLmain ................................................................................................................................................................... 19
Display .............................................................................................................................................................................................................. 19
1. class GameDisplay .................................................................................................................................................................................. 19
2. Les méthodes publiques ........................................................................................................................................................................ 20
2.1 GameDisplay ...................................................................................................................................................................................... 20
2.2 step ..................................................................................................................................................................................................... 20
2.3 draw .................................................................................................................................................................................................... 20
2.4 drawScreen ........................................................................................................................................................................................ 20
2.5 showTempLoading ............................................................................................................................................................................ 20
2.6 setOptionIndex .................................................................................................................................................................................. 20
2.7 setTextAnimation .............................................................................................................................................................................. 21
2.8 setView ............................................................................................................................................................................................... 21
2.9 setViewVarX ....................................................................................................................................................................................... 21
2.10 setViewVarY .................................................................................................................................................................................. 21
2.11 setViewVarXY ................................................................................................................................................................................ 21
2.12 setViewSize ................................................................................................................................................................................... 22
2.13 setWindowSize.............................................................................................................................................................................. 22
2.14 setWindowTitle............................................................................................................................................................................. 22
2.15 setWindowBgColor ....................................................................................................................................................................... 22
2.16 loadParentResources .................................................................................................................................................................... 22
2.17 loadResources ............................................................................................................................................................................... 22
2.18 setIsRunning ................................................................................................................................................................................. 22
2.19 setIsPlaying ................................................................................................................................................................................... 23
2.20 quitScene ....................................................................................................................................................................................... 23
2.21 setSceneStart ................................................................................................................................................................................. 23
2.22 setSceneEnd .................................................................................................................................................................................. 23
2.23 setKeyBackPressed ....................................................................................................................................................................... 23
2.24 getIsRunning ................................................................................................................................................................................. 23
2.25 getIsPlaying ................................................................................................................................................................................... 23
2.26 getSceneStart ................................................................................................................................................................................ 23
2.27 getSceneEnd .................................................................................................................................................................................. 24
2.28 getWindowIsActive....................................................................................................................................................................... 24
3
2.29 getKeyBackPressed ...................................................................................................................................................................... 24
2.30 getView .......................................................................................................................................................................................... 24
2.31 getRenderWindow ........................................................................................................................................................................ 24
2.32 getRenderTexture ......................................................................................................................................................................... 24
2.33 getGameSystem ............................................................................................................................................................................. 24
2.34 getFontSystem .............................................................................................................................................................................. 24
2.35 getFontMsg .................................................................................................................................................................................... 25
2.36 getSprButtonSelect ....................................................................................................................................................................... 25
2.37 getOptionIndex ............................................................................................................................................................................. 25
2.38 getSceneWidth .............................................................................................................................................................................. 25
2.39 getSceneHeight ............................................................................................................................................................................. 25
2.40 getDeltaTime ................................................................................................................................................................................. 25
2.41 getDELTA_TIME ............................................................................................................................................................................ 25
2.42 getSprButtonSelectScale .............................................................................................................................................................. 25
2.43 getViewX ........................................................................................................................................................................................ 26
2.44 getViewY ........................................................................................................................................................................................ 26
2.45 getViewW ...................................................................................................................................................................................... 26
2.46 getViewH ....................................................................................................................................................................................... 26
2.47 getBgColor ..................................................................................................................................................................................... 26
2.48 inViewRec ...................................................................................................................................................................................... 26
2.49 mouseCollision .............................................................................................................................................................................. 26
2.50 SDMmanageScene ......................................................................................................................................................................... 27
2.51 SDMmanageSceneEvents ............................................................................................................................................................. 28
2.52 SDMmanageSceneMsgAnswers ................................................................................................................................................... 28
2.53 SDMcallObjectsEvents .................................................................................................................................................................. 28
2.54 SDMstep ......................................................................................................................................................................................... 28
2.55 SDMdraw ....................................................................................................................................................................................... 28
2.56 createSprite ................................................................................................................................................................................... 28
2.57 GSMplaySound .............................................................................................................................................................................. 28
2.58 GSMplayMusic ............................................................................................................................................................................... 29
2.59 GRMuseGameSystemFont ............................................................................................................................................................ 29
2.60 GRMuseGameSystemTexture ....................................................................................................................................................... 29
2.61 GSMuseGameSystemSound .......................................................................................................................................................... 29
2.62 GSMuseGameSystemMusic .......................................................................................................................................................... 29
2.63 controlEventFocusClosing ........................................................................................................................................................... 29
3. Éléments protégés .................................................................................................................................................................................. 29
3.1 enum MsgAnswer .............................................................................................................................................................................. 29
3.2 showMessageBox ............................................................................................................................................................................... 30
3.3 updateMsgBox ................................................................................................................................................................................... 30
3.4 updateTimeWait ................................................................................................................................................................................ 30
3.5 drawMsgBox ...................................................................................................................................................................................... 30
SDM (Step and Draw Manager) ......................................................................................................................................................................... 30
4
1. class SDM ................................................................................................................................................................................................ 30
2. Les éléments publics de SDM ................................................................................................................................................................. 31
2.1 m_SDMsceneObjects .......................................................................................................................................................................... 31
2.2 SDMgetObject ..................................................................................................................................................................................... 31
2.3 SDMaddSceneObject .......................................................................................................................................................................... 31
2.4 SDMaddSprite .................................................................................................................................................................................... 31
2.5 SDMsetObjDepth ................................................................................................................................................................................ 31
Game Sound ...................................................................................................................................................................................................... 32
1. class GameSound .................................................................................................................................................................................... 32
2. Les éléments publics de GameSound .................................................................................................................................................... 32
2.1 GameSound ........................................................................................................................................................................................ 32
2.2 loadResources .................................................................................................................................................................................... 32
2.3 getSoundBuffer .................................................................................................................................................................................. 32
2.4 getSound............................................................................................................................................................................................. 32
Game Music ....................................................................................................................................................................................................... 32
1. class GameMusic ..................................................................................................................................................................................... 32
2. Les éléments publics de GameMusic ..................................................................................................................................................... 33
2.1 GameMusic ......................................................................................................................................................................................... 33
2.2 loadResources .................................................................................................................................................................................... 33
2.3 getMusic ............................................................................................................................................................................................. 33
GSM (Game Sound Manager) ........................................................................................................................................................................... 33
1. class GSM ................................................................................................................................................................................................. 33
2. Les éléments publics de GSM ................................................................................................................................................................. 33
2.1 Les Conteneurs du GSM ..................................................................................................................................................................... 33
2.2 GSMaddSound .................................................................................................................................................................................... 33
2.3 GSMaddSoundObject ......................................................................................................................................................................... 34
2.4 GSMaddMusic..................................................................................................................................................................................... 34
2.5 GSMaddMusicObject .......................................................................................................................................................................... 34
2.6 GSMpauseSound ................................................................................................................................................................................ 34
2.7 GSMstopSound ................................................................................................................................................................................... 34
2.8 GSMpauseMusic ................................................................................................................................................................................. 34
2.9 GSMstopMusic.................................................................................................................................................................................... 35
2.10 GSMdeleteSound ........................................................................................................................................................................... 35
2.11 GSMdeleteMusic ............................................................................................................................................................................ 35
2.12 GSMgetSound ................................................................................................................................................................................ 35
2.13 GSMgetMusic ................................................................................................................................................................................. 35
Game Texture .................................................................................................................................................................................................... 35
1. class GameTexture ................................................................................................................................................................................. 35
2. Les éléments publics de GameTexture .................................................................................................................................................. 35
2.1 GameTexture ...................................................................................................................................................................................... 35
2.2 loadResources .................................................................................................................................................................................... 36
2.3 getTexture .......................................................................................................................................................................................... 36
5
Game Font ......................................................................................................................................................................................................... 36
1. class GameFont ....................................................................................................................................................................................... 36
2. Les éléments publics de GameFont ....................................................................................................................................................... 36
2.1 GameFont ........................................................................................................................................................................................... 36
2.2 loadResources .................................................................................................................................................................................... 36
2.3 getFont ............................................................................................................................................................................................... 36
GRM (Graphic Resource Manager).................................................................................................................................................................. 37
1. class GRM ................................................................................................................................................................................................ 37
2. Les éléments publics du GRM ................................................................................................................................................................ 37
2.1 Les Conteneurs du GRM .................................................................................................................................................................... 37
2.2 GRMaddFont ...................................................................................................................................................................................... 37
2.3 GRMaddFontObject ........................................................................................................................................................................... 37
2.4 GRMaddTexture ................................................................................................................................................................................. 38
2.5 GRMaddTextureObject ...................................................................................................................................................................... 38
2.6 GRMgetFont ....................................................................................................................................................................................... 38
2.7 GRMgetTexture .................................................................................................................................................................................. 38
2.8 GRMdeleteFont .................................................................................................................................................................................. 38
2.9 GRMdeleteTexture ............................................................................................................................................................................. 38
Transition Effect ................................................................................................................................................................................................. 38
1. class Transition Effect ............................................................................................................................................................................ 38
2. Les éléments publics de Transition Effect ............................................................................................................................................ 39
2.1 Enum Transition ................................................................................................................................................................................ 39
2.2 TransitionEffect ................................................................................................................................................................................. 39
2.3 step ..................................................................................................................................................................................................... 39
2.4 draw .................................................................................................................................................................................................... 39
2.5 setType ............................................................................................................................................................................................... 39
2.6 getTransitionEnd ............................................................................................................................................................................... 39
Entités ............................................................................................................................................................................................................... 40
1. class MainObject ..................................................................................................................................................................................... 40
2. Les éléments publics de MainObjet ....................................................................................................................................................... 40
2.1 MainObject ......................................................................................................................................................................................... 40
2.2 instanceNumber ................................................................................................................................................................................ 40
2.3 m_SDMcallStep ................................................................................................................................................................................... 40
2.4 m_SDMcallDraw ................................................................................................................................................................................. 41
2.5 m_SDMcallEvent ................................................................................................................................................................................ 41
2.6 step ..................................................................................................................................................................................................... 41
2.7 event ................................................................................................................................................................................................... 41
2.8 setXStart ............................................................................................................................................................................................. 41
2.9 setYStart ............................................................................................................................................................................................. 41
2.10 setXPrevious ................................................................................................................................................................................. 41
2.11 setYPrevious ................................................................................................................................................................................. 41
2.12 setStartPosition............................................................................................................................................................................. 42
6
2.13 setX ................................................................................................................................................................................................ 42
2.14 setY ................................................................................................................................................................................................ 42
2.15 moveX ............................................................................................................................................................................................ 42
2.16 moveY ............................................................................................................................................................................................ 42
2.17 setPosition ..................................................................................................................................................................................... 42
2.18 setSpriteScale ................................................................................................................................................................................ 42
2.19 setSpeed ........................................................................................................................................................................................ 42
2.20 setHsp ............................................................................................................................................................................................ 43
2.21 setVsp ............................................................................................................................................................................................ 43
2.22 setAngularMove ............................................................................................................................................................................ 43
2.23 setFrame ........................................................................................................................................................................................ 43
2.24 setImageXscale .............................................................................................................................................................................. 43
2.25 setImageYscale .............................................................................................................................................................................. 43
2.26 setImageScale ................................................................................................................................................................................ 43
2.27 setImageScaleX_Y .......................................................................................................................................................................... 43
2.28 setImageAngle ............................................................................................................................................................................... 44
2.29 setXOffset ...................................................................................................................................................................................... 44
2.30 setYOffset ...................................................................................................................................................................................... 44
2.31 setXYOffset .................................................................................................................................................................................... 44
2.32 setXYOffset .................................................................................................................................................................................... 44
2.33 setTime .......................................................................................................................................................................................... 44
2.34 setImageAlpha .............................................................................................................................................................................. 44
2.35 setImageIndex ............................................................................................................................................................................... 44
2.36 setMaskW ...................................................................................................................................................................................... 45
2.37 setMaskH ....................................................................................................................................................................................... 45
2.38 setRectangleMask ......................................................................................................................................................................... 45
2.39 setCircleMask ................................................................................................................................................................................ 45
2.40 setIsActive ..................................................................................................................................................................................... 45
2.41 updateCollisionMask .................................................................................................................................................................... 45
2.42 centerCollisionMask ..................................................................................................................................................................... 46
2.43 updateSprite .................................................................................................................................................................................. 46
2.44 draw ............................................................................................................................................................................................... 46
2.45 drawMask ...................................................................................................................................................................................... 46
2.46 getMask ......................................................................................................................................................................................... 46
2.47 getCircleMask ................................................................................................................................................................................ 46
2.48 getX ................................................................................................................................................................................................ 46
2.49 getY ................................................................................................................................................................................................ 47
2.50 getXStart ........................................................................................................................................................................................ 47
2.51 getYStart ........................................................................................................................................................................................ 47
2.52 getXPrevious ................................................................................................................................................................................. 47
2.53 getYPrevious ................................................................................................................................................................................. 47
2.54 distantToPoint .............................................................................................................................................................................. 47
7
2.55 distantToObject............................................................................................................................................................................. 47
2.56 pointDirection ............................................................................................................................................................................... 47
2.57 pointDirectionSprite ..................................................................................................................................................................... 48
2.58 getSpeed ........................................................................................................................................................................................ 48
2.59 getHsp ............................................................................................................................................................................................ 48
2.60 getVsp ............................................................................................................................................................................................ 48
2.61 getFrame ....................................................................................................................................................................................... 48
2.62 getFrameStart ............................................................................................................................................................................... 49
2.63 getFrameEnd ................................................................................................................................................................................. 49
2.64 getImageXscale ............................................................................................................................................................................. 49
2.65 getImageYscale ............................................................................................................................................................................. 49
2.66 getImageScale ............................................................................................................................................................................... 49
2.67 getImageAngle .............................................................................................................................................................................. 49
2.68 getXOffset ...................................................................................................................................................................................... 49
2.69 getYOffset ...................................................................................................................................................................................... 49
2.70 getTime .......................................................................................................................................................................................... 50
2.71 getInstanceId................................................................................................................................................................................. 50
2.72 getMaskW ...................................................................................................................................................................................... 50
2.73 getMaskH ....................................................................................................................................................................................... 50
2.74 getIsActive ..................................................................................................................................................................................... 50
2.75 getImageAlpha .............................................................................................................................................................................. 50
2.76 getImageIndex .............................................................................................................................................................................. 50
2.77 getSpriteWidth .............................................................................................................................................................................. 50
2.78 getSpriteHeight ............................................................................................................................................................................. 51
2.79 getSpriteX ...................................................................................................................................................................................... 51
2.80 getSpriteY ...................................................................................................................................................................................... 51
2.81 getTextureWidth ........................................................................................................................................................................... 51
2.82 getTextureHeight .......................................................................................................................................................................... 51
2.83 getSpriteCenterX ........................................................................................................................................................................... 51
2.84 getSpriteCenterY ........................................................................................................................................................................... 51
2.85 getSpriteNumberSubImage .......................................................................................................................................................... 51
2.86 placeMetting .................................................................................................................................................................................. 52
2.87 inViewRec ...................................................................................................................................................................................... 52
2.88 getSprite ........................................................................................................................................................................................ 52
2.89 setFrameLimit ............................................................................................................................................................................... 52
3. Autres fonctions de MainObject ............................................................................................................................................................ 52
3.1 instanceExist ...................................................................................................................................................................................... 52
3.2 operator()........................................................................................................................................................................................... 53
3.3 sortObjArrayByX................................................................................................................................................................................ 53
3.4 sortObjArrayByDepth........................................................................................................................................................................ 53
3.5 operator< ........................................................................................................................................................................................... 53
Les formes pour les masques collisions ............................................................................................................................................................. 54
8
1. class Rectangle ........................................................................................................................................................................................ 54
2. class Circle............................................................................................................................................................................................... 54
Les Classes Parentes de MainObject .................................................................................................................................................................. 54
1. class DepthObject ................................................................................................................................................................................... 54
1.1 enum Depth ........................................................................................................................................................................................ 54
1.2 DepthObject ....................................................................................................................................................................................... 55
1.3 setDepth ............................................................................................................................................................................................. 55
1.4 getDepth ............................................................................................................................................................................................. 55
2. class Destructible ................................................................................................................................................................................... 55
2.1 Destructible ........................................................................................................................................................................................ 55
2.2 setDestroyed ...................................................................................................................................................................................... 55
2.3 isDestroyed ........................................................................................................................................................................................ 55
3. class Visibility ......................................................................................................................................................................................... 55
3.1 Visibility ............................................................................................................................................................................................. 56
3.2 setVisible ............................................................................................................................................................................................ 56
3.3 getVisible ............................................................................................................................................................................................ 56
4. class Health ............................................................................................................................................................................................. 56
4.1 Health ................................................................................................................................................................................................. 56
4.2 setHealth ............................................................................................................................................................................................ 56
4.3 setMaxHealth ..................................................................................................................................................................................... 57
4.4 addHealth ........................................................................................................................................................................................... 57
4.5 getHealth ............................................................................................................................................................................................ 57
4.6 getMaxHealth ..................................................................................................................................................................................... 57
5. class HurtEffect ....................................................................................................................................................................................... 57
5.1 HurtEffect ........................................................................................................................................................................................... 57
5.2 hurtStep .............................................................................................................................................................................................. 57
5.3 setIsHurt ............................................................................................................................................................................................. 58
5.4 getIsHurt ............................................................................................................................................................................................ 58
6. class ScorePoint ...................................................................................................................................................................................... 58
6.1 ScorePoint .......................................................................................................................................................................................... 58
6.2 setScorePoint ..................................................................................................................................................................................... 58
6.3 getScorePoint ..................................................................................................................................................................................... 58
7. class Step ................................................................................................................................................................................................. 58
7.1 Step ..................................................................................................................................................................................................... 58
7.2 setStep ................................................................................................................................................................................................ 59
7.3 addStep ............................................................................................................................................................................................... 59
7.4 reduceStep ......................................................................................................................................................................................... 59
7.5 getStep ................................................................................................................................................................................................ 59
8. class Name .............................................................................................................................................................................................. 59
8.1 Name................................................................................................................................................................................................... 59
8.2 setName .............................................................................................................................................................................................. 59
8.3 getName ............................................................................................................................................................................................. 59
9
9. class FilePath .......................................................................................................................................................................................... 60
9.1 FilePath .............................................................................................................................................................................................. 60
9.2 setFilePath.......................................................................................................................................................................................... 60
9.3 getFilePath ......................................................................................................................................................................................... 60
9.4 getFileIsLoaded.................................................................................................................................................................................. 60
10. class Type ........................................................................................................................................................................................... 60
10.1 Type ............................................................................................................................................................................................... 60
10.2 setType .......................................................................................................................................................................................... 60
10.3 getType .......................................................................................................................................................................................... 61
Le Backgroud ..................................................................................................................................................................................................... 61
1. class Background .................................................................................................................................................................................... 61
2. Les méthodes publiques ........................................................................................................................................................................ 61
2.1 Background ........................................................................................................................................................................................ 61
2.2 step ..................................................................................................................................................................................................... 61
Le Bouton........................................................................................................................................................................................................... 61
1. class Button ............................................................................................................................................................................................. 61
2. Les méthodes publiques ........................................................................................................................................................................ 62
2.1 Button ................................................................................................................................................................................................. 62
2.2 setTitle ................................................................................................................................................................................................ 62
2.3 onClick ................................................................................................................................................................................................ 62
2.4 onMouseOver ..................................................................................................................................................................................... 62
2.5 event ................................................................................................................................................................................................... 62
2.6 step ..................................................................................................................................................................................................... 62
2.7 draw .................................................................................................................................................................................................... 63
2.8 getText ................................................................................................................................................................................................ 63
2.9 getIsInCollision .................................................................................................................................................................................. 63
Admob ............................................................................................................................................................................................................... 63
1. class AdmobManager ............................................................................................................................................................................. 63
2. Les méthodes publiques ........................................................................................................................................................................ 63
2.1 AdmobManager ................................................................................................................................................................................. 63
2.2 loadBannerAd .................................................................................................................................................................................... 63
2.3 showBannerAd .................................................................................................................................................................................. 63
2.4 hideBannerAd .................................................................................................................................................................................... 64
2.5 loadRewardVideo .............................................................................................................................................................................. 64
2.6 showRewardVideo ............................................................................................................................................................................ 64
2.7 updateSFMLApp ................................................................................................................................................................................ 64
2.8 checkAdObjInit .................................................................................................................................................................................. 64
2.9 checkAdRewardObjReinitialize ........................................................................................................................................................ 64
3. Autres Fonction d’AdmobManager ....................................................................................................................................................... 64
3.1 ProcessEvents & WaitForFutureCompletion ................................................................................................................................... 64
3.2 checkAdState ...................................................................................................................................................................................... 65
Temps ............................................................................................................................................................................................................... 65
10
1. class GameTime ...................................................................................................................................................................................... 65
2. Les methods publiques de GameTime .................................................................................................................................................. 65
2.1 GameTime .......................................................................................................................................................................................... 65
2.2 step ..................................................................................................................................................................................................... 65
2.3 addTimeValue .................................................................................................................................................................................... 65
2.4 setTimeValue ..................................................................................................................................................................................... 66
2.5 setMSecond ........................................................................................................................................................................................ 66
2.6 getTimeString .................................................................................................................................................................................... 66
2.7 getTimeValue ..................................................................................................................................................................................... 66
2.8 getMinute ........................................................................................................................................................................................... 66
2.9 getSecond ........................................................................................................................................................................................... 66
2.10 getMSecond ................................................................................................................................................................................... 66
2.11 compareTime ................................................................................................................................................................................ 66
2.12 operator=....................................................................................................................................................................................... 67
2.13 operator<< .................................................................................................................................................................................... 67
3. Autres Fonctions de GameTime ............................................................................................................................................................ 67
Commande du jeu ............................................................................................................................................................................................ 67
1. class GameKeyData ................................................................................................................................................................................ 67
2. Les éléments de GameKeyData .............................................................................................................................................................. 67
2.1 enum VirtualKeyIndex ...................................................................................................................................................................... 67
2.2 GameKeyData ..................................................................................................................................................................................... 68
2.3 loadResources .................................................................................................................................................................................... 68
2.4 step ..................................................................................................................................................................................................... 68
2.5 draw .................................................................................................................................................................................................... 68
2.6 m_keyPausePressed .......................................................................................................................................................................... 68
2.7 m_keyLeftPressed .............................................................................................................................................................................. 68
2.8 m_keyRightPressed ........................................................................................................................................................................... 68
2.9 m_keyUpPressed ................................................................................................................................................................................ 69
2.10 m_keyDownPressed...................................................................................................................................................................... 69
2.11 m_keyAPressed ............................................................................................................................................................................. 69
2.12 m_keyBPressed ............................................................................................................................................................................. 69
2.13 m_keyAUsed .................................................................................................................................................................................. 69
2.14 m_keyBUsed .................................................................................................................................................................................. 69
2.15 m_keyLeftUsed .............................................................................................................................................................................. 69
2.16 m_keyRightUsed ........................................................................................................................................................................... 69
2.17 m_keyUpUsed ................................................................................................................................................................................ 70
2.18 m_keyDownUsed .......................................................................................................................................................................... 70
2.19 m_disableAllKey ............................................................................................................................................................................ 70
2.20 m_hideGamePad ........................................................................................................................................................................... 70
2.21 m_keyboardA ................................................................................................................................................................................ 70
2.22 m_keyboardB ................................................................................................................................................................................ 70
2.23 m_keyboardLeft ............................................................................................................................................................................ 70
11
2.24 m_keyboardRight .......................................................................................................................................................................... 70
2.25 m_keyboardUp .............................................................................................................................................................................. 71
2.26 m_keyboardDown ......................................................................................................................................................................... 71
2.27 m_moveKeyPressed ...................................................................................................................................................................... 71
2.28 m_actionKeyPressed ..................................................................................................................................................................... 71
2.29 keyLeftPressed .............................................................................................................................................................................. 71
2.30 keyRightPressed ........................................................................................................................................................................... 71
2.31 keyUpPressed ............................................................................................................................................................................... 71
2.32 keyDownPressed .......................................................................................................................................................................... 71
2.33 keyAPressed .................................................................................................................................................................................. 72
2.34 keyBPressed .................................................................................................................................................................................. 72
2.35 virtualKeyPressed ......................................................................................................................................................................... 72
3. Autres fonctions de GameKeyData ........................................................................................................................................................ 72
Game Slider ....................................................................................................................................................................................................... 72
1. class Game Slider .................................................................................................................................................................................... 72
2. Les éléments publics de Game Slider .................................................................................................................................................... 72
2.1 Slider Direction .................................................................................................................................................................................. 73
2.2 GameSlider ......................................................................................................................................................................................... 73
2.3 step ..................................................................................................................................................................................................... 73
2.4 getSliderDirection.............................................................................................................................................................................. 73
Game Système .................................................................................................................................................................................................. 73
1. class GameSystem .................................................................................................................................................................................. 73
2. Les éléments de GameSystem ................................................................................................................................................................ 73
2.1 enum ValidationButton ..................................................................................................................................................................... 73
2.2 GameSystem ....................................................................................................................................................................................... 74
2.3 isPressed ............................................................................................................................................................................................ 74
2.4 keyIsPressed ...................................................................................................................................................................................... 75
2.5 fileExist ............................................................................................................................................................................................... 75
2.6 playSound ........................................................................................................................................................................................... 75
2.7 GSMplaySound ................................................................................................................................................................................... 75
2.8 playMusic ........................................................................................................................................................................................... 75
2.9 GSMplayMusic .................................................................................................................................................................................... 75
2.10 stopSound ...................................................................................................................................................................................... 76
2.11 stopMusic ...................................................................................................................................................................................... 76
2.12 useVibrate ..................................................................................................................................................................................... 76
2.13 saveConfig ..................................................................................................................................................................................... 76
2.14 loadConfig ..................................................................................................................................................................................... 76
2.15 savePadConfig ............................................................................................................................................................................... 76
2.16 loadPadConfig ............................................................................................................................................................................... 76
2.17 m_disableKey ................................................................................................................................................................................ 76
2.18 m_enableSound ............................................................................................................................................................................. 77
2.19 m_enableMusic .............................................................................................................................................................................. 77
12
2.20 m_enableVibrate ........................................................................................................................................................................... 77
2.21 m_keyIsPressed............................................................................................................................................................................. 77
2.22 m_firstLaunch ............................................................................................................................................................................... 77
2.23 m_validationMouseKey ................................................................................................................................................................ 77
2.24 m_validationKeyboardKey ........................................................................................................................................................... 77
2.25 m_gameLanguage.......................................................................................................................................................................... 77
2.26 m_padAlpha ................................................................................................................................................................................... 78
Game System Extended ..................................................................................................................................................................................... 78
1. class GameSystemExtended................................................................................................................................................................... 78
2. Les éléments de GameSystemExtended ................................................................................................................................................ 78
2.1 GameSystemExtended ....................................................................................................................................................................... 78
2.2 initSystemData ................................................................................................................................................................................... 78
2.3 initProgress ........................................................................................................................................................................................ 78
2.4 initData ............................................................................................................................................................................................... 78
2.5 saveData ............................................................................................................................................................................................. 79
2.6 loadData ............................................................................................................................................................................................. 79
2.7 m_launchOption ................................................................................................................................................................................. 79
2.8 game play variables ........................................................................................................................................................................... 79
Game Function ................................................................................................................................................................................................. 79
1. Fonction Générale .................................................................................................................................................................................. 79
1.1 VALUE_CONVERSION ........................................................................................................................................................................ 79
1.2 SECOND .............................................................................................................................................................................................. 80
1.3 WITH .................................................................................................................................................................................................. 80
1.4 closeApplication ................................................................................................................................................................................ 80
1.5 w_chart_tToStr ................................................................................................................................................................................... 80
1.6 strToWStr ........................................................................................................................................................................................... 80
1.7 numToStr ........................................................................................................................................................................................... 80
1.8 strToNum ........................................................................................................................................................................................... 80
1.9 numToWStr ........................................................................................................................................................................................ 81
1.10 writeZero ....................................................................................................................................................................................... 81
1.11 getMSecond ................................................................................................................................................................................... 81
1.12 makeTime ...................................................................................................................................................................................... 81
1.13 showLog ........................................................................................................................................................................................ 81
1.14 arraySize ........................................................................................................................................................................................ 81
1.15 choose ............................................................................................................................................................................................ 82
1.16 random .......................................................................................................................................................................................... 82
1.17 setVarLimit .................................................................................................................................................................................... 82
1.18 isIn ................................................................................................................................................................................................. 82
1.19 isBetween ...................................................................................................................................................................................... 82
1.20 isCrossing ...................................................................................................................................................................................... 83
1.21 side ................................................................................................................................................................................................. 83
1.22 sign ................................................................................................................................................................................................. 83
13
1.23 pointDirection ............................................................................................................................................................................... 83
1.24 pointDistance ................................................................................................................................................................................ 83
1.25 radToDeg ....................................................................................................................................................................................... 83
1.26 degToRad ...................................................................................................................................................................................... 83
1.27 lengthDirX ..................................................................................................................................................................................... 83
1.28 lengthDirY ..................................................................................................................................................................................... 84
1.29 increaseVar ................................................................................................................................................................................... 84
1.30 decreaseVar ................................................................................................................................................................................... 84
1.31 collisionTest .................................................................................................................................................................................. 84
2. Fonction sur les objets SFML ................................................................................................................................................................. 84
2.1 setVector2 .......................................................................................................................................................................................... 85
2.2 getSFMLObjAngle .............................................................................................................................................................................. 85
2.3 getSFMLObjXScale ............................................................................................................................................................................. 85
2.4 getSFMLObjYScale ............................................................................................................................................................................. 85
2.5 getSFMLObjWidth.............................................................................................................................................................................. 85
2.6 getSFMLObjHeight ............................................................................................................................................................................. 85
2.7 getSFMLTextureWidth ...................................................................................................................................................................... 85
2.8 getSFMLTextureHeight ..................................................................................................................................................................... 86
2.9 getSFMLObjOriginX ........................................................................................................................................................................... 86
2.10 getSFMLObjOriginY ...................................................................................................................................................................... 86
2.11 getSFMLObjX ................................................................................................................................................................................. 86
2.12 getSFMLObjY ................................................................................................................................................................................. 86
2.13 setSFMLObjAngle .......................................................................................................................................................................... 87
2.14 setSFMLObjRotate ........................................................................................................................................................................ 87
2.15 setSFMLObjScaleX_Y .......................................................................................................................................................................... 87
2.16 setSFMLObjScale ........................................................................................................................................................................... 87
2.17 setSFMLObjOrigin ......................................................................................................................................................................... 87
2.18 setSFMLObjX ................................................................................................................................................................................. 87
2.19 setSFMLObjY ................................................................................................................................................................................. 88
2.20 centerSFMLObj .............................................................................................................................................................................. 88
2.21 centerSFMLObjX ........................................................................................................................................................................... 88
2.22 centerSFMLObjY ........................................................................................................................................................................... 88
2.23 setSFMLObjX_Y ............................................................................................................................................................................. 88
2.24 moveSFMLObjX ............................................................................................................................................................................. 88
2.25 moveSFMLObjY ............................................................................................................................................................................. 89
2.26 setSFMLObjSize ............................................................................................................................................................................. 89
2.27 setSFMLObjAlpha.......................................................................................................................................................................... 89
2.28 setSFMLObjAlpha2 ....................................................................................................................................................................... 89
2.29 setSFMLObjColor .......................................................................................................................................................................... 90
2.30 setSFMLObjFillColor ..................................................................................................................................................................... 90
2.31 scaleAnimation ............................................................................................................................................................................. 90
2.32 setFrame ........................................................................................................................................................................................ 90
14
2.33 setSFMLObjOutlineColor .............................................................................................................................................................. 90
2.34 setSFMLObjTexRec ....................................................................................................................................................................... 90
2.35 setSFMLObjProperties .................................................................................................................................................................. 90
2.36 loadSFMLTexture .......................................................................................................................................................................... 91
2.37 loadSFMLFont ............................................................................................................................................................................... 91
2.38 loadSFMLSoundBuffer .................................................................................................................................................................. 91
2.39 loadSFMLMusic ............................................................................................................................................................................. 91
2.40 checkSFMLSndState ...................................................................................................................................................................... 91
2.41 playSFMLsnd ................................................................................................................................................................................. 92
2.42 stopSFMLsnd ................................................................................................................................................................................. 92
2.43 pauseSFMLsnd .............................................................................................................................................................................. 92
2.44 loopSFMLsnd ................................................................................................................................................................................. 92
2.45 collisionTestSFML ......................................................................................................................................................................... 92
2.46 createRectangle............................................................................................................................................................................. 93
2.47 textStyleConfig .............................................................................................................................................................................. 93
2.48 createText...................................................................................................................................................................................... 93
2.49 createSprite ................................................................................................................................................................................... 93
2.50 getCursor ....................................................................................................................................................................................... 94
2.51 mouseCollision .............................................................................................................................................................................. 94
3. Autres fonctions ..................................................................................................................................................................................... 95
3.1 clear .................................................................................................................................................................................................... 95
3.2 draw .................................................................................................................................................................................................... 95
3.3 display ................................................................................................................................................................................................ 95
3.4 setFPS ................................................................................................................................................................................................. 96
3.5 vibrate ................................................................................................................................................................................................ 96
3.6 openURL ............................................................................................................................................................................................. 96
3.7 jstring2string ..................................................................................................................................................................................... 96
3.8 getDeviceId ........................................................................................................................................................................................ 96
Bibliothèque externe ....................................................................................................................................................................................... 96
1. Tiny File Dialogs (uniquement pour Windows et Linux) .................................................................................................................... 96
2.1 class TinyDialogBox ........................................................................................................................................................................... 96
2.2 tinyString ............................................................................................................................................................................................ 97
2.3 TINY_FILE_DIALOGBOX_PATH ......................................................................................................................................................... 97
2.4 enum FileDialogType ........................................................................................................................................................................ 97
2.5 enum DialogType ............................................................................................................................................................................... 97
2.6 enum IconType .................................................................................................................................................................................. 97
2.7 enumDialogTypeToStr / enumIconTypeToStr ................................................................................................................................ 98
2.8 showDialogBox .................................................................................................................................................................................. 98
2.9 showFileDialogBox ............................................................................................................................................................................ 98
2.10 showFolderDialogBox .................................................................................................................................................................. 99
2. Box 2D ..................................................................................................................................................................................................... 99
3. TMXLite ................................................................................................................................................................................................... 99
15
Game Engine ..................................................................................................................................................................................................... 99
1. class GameEngine ................................................................................................................................................................................... 99
2. Les méthodes de GameEngine ............................................................................................................................................................... 99
2.1 GameEngine ....................................................................................................................................................................................... 99
2.2 initEngine ......................................................................................................................................................................................... 100
2.3 play ................................................................................................................................................................................................... 100
2.4 basicSFMLmain ................................................................................................................................................................................ 100
2.5 getRenderWindow........................................................................................................................................................................... 100
Configuration du jeu ...................................................................................................................................................................................... 100
1. enum DisplayOption ............................................................................................................................................................................. 100
2. Paramètre de la fenêtre........................................................................................................................................................................ 101
2.1 WINDOW_WIDTH ............................................................................................................................................................................ 101
2.2 WINDOW_HEIGHT ........................................................................................................................................................................... 101
2.3 VIEW_WIDTH ................................................................................................................................................................................... 101
2.4 VIEW_HEIGHT .................................................................................................................................................................................. 101
2.5 FPS .................................................................................................................................................................................................... 101
2.6 WINDOW_SETTINGS ....................................................................................................................................................................... 101
3. Paramètre des boutons de validation ................................................................................................................................................. 101
3.1 KEY_VALIDATION_MOUSE .............................................................................................................................................................. 101
3.2 KEY_VALIDATION_KEYBOARD ....................................................................................................................................................... 102
3.3 KEY_CANCEL .................................................................................................................................................................................... 102
4. Paramètre des touches du clavier ....................................................................................................................................................... 102
4.1 KEY_A ............................................................................................................................................................................................... 102
4.2 KEY_B ............................................................................................................................................................................................... 102
4.3 KEY_LEFT ......................................................................................................................................................................................... 102
4.4 KEY_RIGHT ....................................................................................................................................................................................... 102
4.5 KEY_UP ............................................................................................................................................................................................. 102
4.6 KEY_DOWN ...................................................................................................................................................................................... 102
5. Valeur par defaut des composants SFML ............................................................................................................................................ 103
5.1 DEFAULT_SFML_TEXT_SIZE ........................................................................................................................................................... 103
5.2 DEFAULT_SFML_TEXT_COLOR ....................................................................................................................................................... 103
5.3 DEFAULT_SFML_SELECTED_TEXT_COLOR ................................................................................................................................... 103
5.4 DEFAULT_MSG_BOX_TEXT_COLOR ................................................................................................................................................ 103
5.5 DEFAULT_MSG_BOX_SELECTED_TEXT_COLOR ............................................................................................................................ 103
5.6 DEFAULT_RPG_DIALOG_TEXT_COLOR .......................................................................................................................................... 103
5.7 DEFAULT_RPG_DIALOG_SELECTED_TEXT_COLOR ....................................................................................................................... 103
5.8 DEFAULT_BUTTON_TEXT_COLOR ................................................................................................................................................. 104
6. Les informations du jeu ....................................................................................................................................................................... 104
6.1 MAJOR .............................................................................................................................................................................................. 104
6.2 MINOR .............................................................................................................................................................................................. 104
6.3 getGameVersion ............................................................................................................................................................................... 104
6.4 GAME_NAME .................................................................................................................................................................................... 104
16
6.5 GAME_AUTHOR ............................................................................................................................................................................... 104
7. Paramètre Admob ................................................................................................................................................................................ 104
7.1 Id de la PUB ...................................................................................................................................................................................... 104
7.1.1 kAdMobAppID ............................................................................................................................................................................. 104
7.1.2 kBannerAdUnit ........................................................................................................................................................................... 105
7.1.3 kRewardedVideoAdUnit ............................................................................................................................................................. 105
7.2 Taille de la bannière de PUB ........................................................................................................................................................... 105
7.2.1 kBannerWidth ............................................................................................................................................................................. 105
7.2.2 kBannerHeight ............................................................................................................................................................................ 105
7.3 Publique cible de la PUB.................................................................................................................................................................. 105
7.3.1 kBirthdayDay .............................................................................................................................................................................. 105
7.3.2 kBirthdayMonth .......................................................................................................................................................................... 105
7.3.3 kBirthdayYear ............................................................................................................................................................................. 105
7.3.4 kKeywords .................................................................................................................................................................................. 105
8. Chemin des fichiers ressources du jeu ................................................................................................................................................ 106
8.1 ASSETS_DIR ...................................................................................................................................................................................... 106
8.2 GUI_DIR ............................................................................................................................................................................................ 106
8.3 FONT_DIR ......................................................................................................................................................................................... 106
8.4 SPRITES_DIR .................................................................................................................................................................................... 106
8.5 TILES_DIR ......................................................................................................................................................................................... 106
8.6 SFX_DIR ............................................................................................................................................................................................ 106
8.7 MUSIC_DIR ....................................................................................................................................................................................... 106
8.8 TMX_RSC_DIR ................................................................................................................................................................................... 106
9. Nom du package du jeu (Android) ...................................................................................................................................................... 107
10. Chemin des fichiers de sauvegarde ................................................................................................................................................ 107
10.1 DATA_PARENT_DIR .................................................................................................................................................................... 107
10.2 GAME_DATA_FILE ....................................................................................................................................................................... 107
10.3 CONFIG_FILE ............................................................................................................................................................................... 107
10.4 GAME_PAD_FILE ......................................................................................................................................................................... 107
Activité ............................................................................................................................................................................................................ 107
1. class GameActivity ................................................................................................................................................................................ 107
2. Les éléments de GameActivity; ............................................................................................................................................................ 108
2.1 GameActivity .................................................................................................................................................................................... 108
2.2 m_gameScene ................................................................................................................................................................................... 108
2.3 onUpdate .......................................................................................................................................................................................... 108
2.4 onDraw ............................................................................................................................................................................................. 108
Niveau ............................................................................................................................................................................................................. 108
1. Les niveaux ........................................................................................................................................................................................... 108
2. Intégration d’un niveau ........................................................................................................................................................................ 108
3. Les éléments pour gérer les niveaux ................................................................................................................................................... 108
3.1 namespace level ............................................................................................................................................................................... 108
3.2 enum LevelId ................................................................................................................................................................................... 109
17
3.3 getLevelMap ..................................................................................................................................................................................... 109
Langage du jeu ................................................................................................................................................................................................ 109
1. Les langues ............................................................................................................................................................................................ 109
2. Les éléments pour gérer les langues ................................................................................................................................................... 110
2.1 namespace Lang .............................................................................................................................................................................. 110
2.2 enum GameLanguage ...................................................................................................................................................................... 110
Boite de Dialogue du jeu ................................................................................................................................................................................ 110
1. class GameDialog .................................................................................................................................................................................. 110
2. Les éléments de GameDialog ............................................................................................................................................................... 110
2.1 GameDialog ...................................................................................................................................................................................... 111
2.2 enum DialogIndex ............................................................................................................................................................................ 111
2.3 linkArrayToEnum ............................................................................................................................................................................ 111
2.4 step ................................................................................................................................................................................................... 112
2.5 setDialog ........................................................................................................................................................................................... 112
2.6 setMouseInCollison ......................................................................................................................................................................... 112
2.7 draw .................................................................................................................................................................................................. 112
2.8 getDialogIndex ................................................................................................................................................................................. 112
2.9 getMouseInCollison ......................................................................................................................................................................... 112
2.10 showDialog .................................................................................................................................................................................. 112
18
Guide de démarrage
1. Introduction
Bienvenue dans le guide d’utilisation du moteur de jeu is::Engine. Ce guide à pour objective de vous tailler comment
l’API fonctionne.
2. A propos du moteur
is::Engine est un outil qui se base sur les mécanismes de la bibliothèque SFML pour fonctionner. Donc si vous voulez
bien utiliser cet outil il est vivement conseil de connaitre au minimum les bases de SFML. L’objectif de ce moteur est
de vous offrir des fonctinnalités qui vous permettent de créer un jeu avec le plus de souplesse possible et de le porter
facilement sur diverses plateformes (Web-HTML5, Windows, Linux, Android).
Le moteur est directement livré avec un IDE pour vous éviter les reconfigurations et de démarrer rapidement avec celui
ci. Notez que chaque IDE avec lequel le moteur est livré permet de porter votre projet sur une plateforme cible. Donc le
projet Android Studio vous permet d’utiliser le moteur pour développer sous Android.
L’entête qui permet d’avoir accès à la bibliothèque est : isEngine/core/GameEngine.h.
3. Structure du moteur
3.1 app_src
Repertoire qui contient le code source du jeu.
Description de ces sous-répertoires:
activity: Contient la classe Activity (cliquer ici 1 pour plus d’info) qui permet de lancer les différentes scènes
du jeu et d’assurer leurs interactions.
config: Contient le fichier GameConfig.cpp (cliquer ici 1 pour plus d’info) qui permet de définir les
paramètres généraux du jeu. Il contient aussi le fichier ExtraConfig.cpp qui permet d’activer / désactiver
certaines fonctionnalités du moteur.
gamesystem_ext: Contient une classe dérivée (cliquer ici 1 pour plus d’info) de GameSystem (cliquer ici 1
pour plus d’info) qui permet de manipuler les données du jeu (sauvegarde, chargement, ...).
language: Contient le fichier GameLanguage.cpp (cliquer ici 1 pour plus d’info) qui permet de gérer tout ce
qui concerne les langues du jeu.
isEngine
app_src
config
assets
scenes
objects
levels
language
Le jeu
gamesyste
m_ext
Fichier
main.cpp
19
levels: Contient les niveaux et le fichier Level.h (cliquer ici 1 pour plus d’info) qui permet de les intégrer dans
le jeu.
objects: Contient les objets qui seront utilisés dans les différentes scènes.
scenes: Contient les différentes scènes du jeu (cliquer ici 1 pour plus d’info) (Introduction, Menu principal, ...).
3.2 isEngine
Repertoire qui contient le code source du moteur de jeu.
3.3 assets
Repertoire des fichiers ressources du jeu (musiques, effets sonores, images, ...).
3.4 Fichier main.cpp
Ce fichier contient la fonction qui permet de lancer le programme.
3.4.1 main
int main()
Code Source
La fonction principale qui permet de lancer le moteur de jeu. A l’intérieur d’elle vous trouverez GameEngine game; qui
permet d’initialiser le moteur de jeu.
Retourne 0 quand le programme c’est bien terminé et une autre valeur s’il y a une erreur lors de l’éxécution.
3.4.2 game.play
game.play()
Code Source
Permet d’utiliser la boucle principale du moteur qui permet de lancer les différentes scènes du jeu (Introduction, Menu
principal, …).
3.4.3 game.basicSFMLmain
game.basicSFMLmain()
Code Source
Permet d’afficher une fenêtre SFML classique. Cette fonction vous permet d’utiliser votre propre boucle de rendu avec
le moteur. Très utile si vous désirez utiliser un projet SFML déjà en cour de développement avec le moteur ou d’intégrer
vos propres composant au moteur.
Display
1. class GameDisplay
class GameDisplay;
Entête : isEngine/system/display/GameDisplay.h
Code Source
Classe abstraite qui permet de créer la scène d’un jeu. Une scène est un endroit où les objets du jeu prennent vie (Menu
Principal, Niveau, …). Cette classe vous offre des fonctions qui vous permettent de manipuler facilement la vue,
20
appliquer les évenements de la fenêtre sur la scène, de faire des animations sur des textes et sprites, afficher des boites
de dialogue, …
2. Les méthodes publiques
2.1 GameDisplay
GameDisplay(GameSystemExtended &gameSysExt, sf::Color bgColor)
Code Source
Constructeur qui permet de créer un object GameDisplay, elle prend en paramètre un objet GameSystemExtended
(cliquer ici 1 pour plus d’info) et la couleur de fond de la scène.
2.2 step
virtual void step() = 0
Code Source
Méthode qui permet d’implémenter la partie où les objets de la scène sont mise à jour (déplacement des objets,
détections de collision, …).
Note : Lorsque le SDM est activé et que l'utilisateur ne surcharge pas cette fonction, le SDM prend soin d'appeler
cette méthode pour mettre à jour automatiquement les objets de la scène et les événements de la fenêtre.
2.3 draw
virtual void draw() = 0
Code Source
Méthode qui permet d’implémenter la partie où les objets de la scène seront déssinés.
Note : Lorsque le SDM est activé et que l'utilisateur ne surcharge pas cette fonction, le SDM prend soin d'appeler
cette méthode pour afficher automatiquement les objets de la scène.
2.4 drawScreen
virtual void drawScreen()
Code Source
Méthode qui permet d’afficher les objets de la scène.
2.5 showTempLoading
virtual void showTempLoading(float time = 3.f * is::SECOND)
Code Source
Permet d’afficher un faux écran de chargement (Utile pour faire des transitions dans la même scène).
Paramètre time représente la durée (en milliseconde) du chargement.
2.6 setOptionIndex
Première forme :
virtual void setOptionIndex(int optionIndexValue, bool callWhenClick, float buttonScale = 1.3f)
Code Source
Permet de faire des animations sur des textes et de jouer un son quand on change une option.
21
Deuxième forme :
virtual void setOptionIndex(int optionIndexValue)
Code Source
Permet de change une option.
2.7 setTextAnimation
Première forme :
virtual void setTextAnimation(sf::Text &txt, sf::Sprite &spr, int val)
Code Source
Permet de faire une animation sur un texte et un sprite en fonction du choix d’une option.
Deuxième forme :
virtual void setTextAnimation(sf::Text &txt, int &var, int val)
Code Source
Permet de faire une animation sur un texte en fonction du choix d’une option.
2.8 setView
Première forme :
virtual void setView()
Deuxième forme :
virtual void setView(sf::Vector2f v)
Troisième forme :
virtual void setView(float x, float y)
Code Source
Met à jour la position de la vue dans la scène.
2.9 setViewVarX
virtual void setViewVarX(float val)
Code Source
Permet de définir la variable m_viewX.
2.10 setViewVarY
virtual void setViewVarY(float val)
Code Source
Permet de définir la variable m_viewY.
2.11 setViewVarXY
virtual void setViewVarXY(float x, float y)
22
Code Source
Permet de définir la variable m_viewX et m_viewY.
2.12 setViewSize
virtual void setViewSize(sf::Vector2f v)
virtual void setViewSize(float x, float y);
Code Source
Permet de définir la position de la vue.
2.13 setWindowSize
virtual void setWindowSize(sf::Vector2u v, bool updateViewSize = false)
Code Source
Permet de redéfinir la taille de la fenêtre (uniquement pour PC).
2.14 setWindowTitle
virtual void setWindowTitle(const sf::String &title)
Code Source
Permet de définir le titre de la fenêtre.
2.15 setWindowBgColor
virtual void setWindowBgColor(sf::Color color)
Code Source
Permet de définir la couleur de fond de la fenêtre.
2.16 loadParentResources
virtual bool loadParentResources()
Code Source
Charge les ressources qui permettent d’afficher les boites de dialogues dans une scène.
Elle est généralement utilisée dans la fonction loadResources d’une scène.
2.17 loadResources
virtual bool loadResources() = 0
Code Source
Permet d’implémenter le chargement des ressources qui sont utilisés dans une scène.
2.18 setIsRunning
virtual void setIsRunning(bool val)
Code Source
Permet de définir l’état d’éxécution de la scène.
23
2.19 setIsPlaying
virtual void setIsPlaying(bool val)
Code Source
Permet de définir la variable m_isPlaying.
2.20 quitScene
virtual void quitScene(int nextScene = -1)
Code Source
Permet de quitter la scene en cours et d’aller vers une autre. Si aucune scène n’est renseignée l’application s’arrête.
2.21 setSceneStart
virtual void setSceneStart(bool val)
Code Source
Permet de définir la variable m_sceneStart.
2.22 setSceneEnd
virtual void setSceneEnd(bool val)
Code Source
Permet de définir la variable m_sceneEnd.
2.23 setKeyBackPressed
virtual void setKeyBackPressed(bool val)
Code Source
Permet de définir la variable m_keyBackPressed.
2.24 getIsRunning
virtual bool getIsRunning() const
Code Source
Retourne vrai si une scène est en cours d’exécution et faux si non.
2.25 getIsPlaying
virtual bool getIsPlaying() const
Code Source
Retourne vrai si une scène est active et faux si non.
2.26 getSceneStart
virtual bool getSceneStart() const
Code Source
Retourne vrai si une scène est à son début d’éxécution et faux si non.
24
2.27 getSceneEnd
virtual bool getSceneEnd() const
Code Source
Retourne vrai si une scène arrive à sa fin d’éxécution et faux si non.
2.28 getWindowIsActive
virtual bool getWindowIsActive() const
Code Source
Retourne vrai si la fenêtre est active et faux si non.
2.29 getKeyBackPressed
virtual bool getKeyBackPressed() const
Code Source
Retourne la valeur de la vraiable m_keyBackPressed.
2.30 getView
virtual sf::View& getView() const
Code Source
Retourne la vue d’une scène.
2.31 getRenderWindow
virtual sf::RenderWindow& getRenderWindow()
Code Source
Retourne la fenêtre d’exécution de la scène.
2.32 getRenderTexture
virtual sf::RenderTexture& getRenderTexture() const
Code Source
Retourne la surface sur laquelle on déssine les objets d’une scène.
2.33 getGameSystem
virtual GameSystemExtended& getGameSystem()
Code Source
Retourne l’objet game system extended.
2.34 getFontSystem
virtual sf::Font& getFontSystem()
Code Source
Retourne la police du système.
25
2.35 getFontMsg
virtual sf::Font& getFontMsg()
Code Source
Retourne la police de la boite de dialogue.
2.36 getSprButtonSelect
virtual sf::Sprite& getSprButtonSelect()
Code Source
Retourne le Sprite de sélection d’option.
2.37 getOptionIndex
virtual int getOptionIndex()
Code Source
Retourne l’option chosie.
2.38 getSceneWidth
virtual unsigned int getSceneWidth()
Code Source
Retourne la largeur de la scène.
2.39 getSceneHeight
virtual unsigned int getSceneHeight()
Code Source
Retourne la hauteur de la scène.
2.40 getDeltaTime
virtual float getDeltaTime()
Code Source
Retourne le temps d’exécution en seconde.
2.41 getDELTA_TIME
virtual float getDELTA_TIME() const
Code Source
Retourne la variable DELTA_TIME.
2.42 getSprButtonSelectScale
virtual float& getSprButtonSelectScale()
Code Source
Retourne l’echelle du Sprite de sélection.
26
2.43 getViewX
virtual float getViewX() const
Code Source
Retourne la position x de la vue.
2.44 getViewY
virtual float getViewY() const
Code Source
Retourne la position y de la vue.
2.45 getViewW
virtual float getViewW() const
Code Source
Retourne la largeur de la vue.
2.46 getViewH
virtual float getViewH() const
Code Source
Retourne la hauteur de la vue.
2.47 getBgColor
virtual sf::Color& getBgColor()
Code Source
Retourne la couleur de fond de la scène.
2.48 inViewRec
virtual bool inViewRec(MainObject *obj, bool useTexRec = true)
Code Source
Retourne vrais si l’objet se trouve dans le champ de vision de la vue, faux si non.
2.49 mouseCollision
Première forme
template <class T>
bool mouseCollision(T const &obj
#if defined(__ANDROID__)
, unsigned int finger = 0
#endif
)
27
Code Source
Windows, Linux : Détecte si le curseur de la souris est en collision avec un objet de la scène.
Android : Détecte si l’utilisateur touche un objet de la scène.
Paramètre :
obj l’objet avec lequel on veut faire le test.
finger représente l’index du doigt.
Retourne vrais si il y a collision et faux si non.
Exemple :
if (mouseCollision(sprite))
{
// do something
}
Deuxième forme
template <class T>
bool mouseCollision(T const &obj, sf::Vector2f &position
#if defined(__ANDROID__)
, unsigned int finger = 0
#endif
)
Code Source
Windows, Linux : Détecte si le curseur de la souris est en collision avec un objet de la scène.
Android : Détecte si l’utilisateur touche un objet de la scène.
Paramètre :
obj l’objet avec lequel on veut faire le test.
position permet de récupérer la position du point de collision.
finger représente l’index du doigt.
Retourne vrais si il y a collision et faux si non.
Exemple :
sf::Vector2f pos;
if (mouseCollision(sprite, pos))
{
float cursorXPosition = pos.x;
float cursorYPosition = pos.y;
}
2.50 SDMmanageScene
virtual void SDMmanageScene()
28
Code Source
Permet de gérer toutes les parties de la scene (évènement, mise à jour, affichage, boite de dialogue).
2.51 SDMmanageSceneEvents
virtual void SDMmanageSceneEvents()
Code Source
Permet de définir la façon dont le SDM va gérer les évènements de la fenêtre. Pour changer le mécanisme surcharger
cette méthode.
2.52 SDMmanageSceneMsgAnswers
virtual void SDMmanageSceneMsgAnswers()
Code Source
Permet de définir la façon dont les réponses de la boite de dialogue seront gérées par le SDM. Pour changer le
mécanisme surcharger cette méthode.
2.53 SDMcallObjectsEvents
virtual void SDMcallObjectsEvents(sf::Event &event)
Code Source
Permet d’appeler la méthode event() (la partie evenement) d’un objets qui se trouvent dans le conteneur du SDM.
2.54 SDMstep
virtual void SDMstep()
Code Source
Permet de mettre à jour les objets qui se trouvent dans le conteneur du SDM.
2.55 SDMdraw
virtual void SDMdraw()
Code Source
Permet d’afficher les objets qui se trouvent dans le conteneur du SDM.
2.56 createSprite
virtual void createSprite(std::string const &spriteName, is::MainObject &obj, sf::IntRect rec, sf::Vector2f position,
sf::Vector2f origin, sf::Vector2f scale = sf::Vector2f(1.f, 1.f), unsigned int alpha = 255)
Code Source
Permet créer un sprite en lui associant une texture. Ce sprite sera affiché si et seulement s’il est dans le champ de vision
de la vue. Sur SDL le sprite sera Blité (jeu sera plus optimisé).
2.57 GSMplaySound
virtual void GSMplaySound(const std::string& name)
Code Source
29
Permet de jouer un son gérer par le GSM.
2.58 GSMplayMusic
virtual void GSMplayMusic(const std::string& name)
Code Source
Permet de jouer une musique gérer par le GSM.
2.59 GRMuseGameSystemFont
virtual void GRMuseGameSystemFont()
Code Source
Permet de à la scéné d’utiliser les polices du GameSystem.
2.60 GRMuseGameSystemTexture
virtual void GRMuseGameSystemTexture()
Code Source
Permet de à la scéné d’utiliser les textures du GameSystem.
2.61 GSMuseGameSystemSound
virtual void GSMuseGameSystemSound()
Code Source
Permet de à la scéné d’utiliser les sons du GameSystem.
2.62 GSMuseGameSystemMusic
virtual void GSMuseGameSystemMusic()
Code Source
Permet de à la scéné d’utiliser les musique du GameSystem.
2.63 controlEventFocusClosing
virtual void controlEventFocusClosing()
Code Source
Gère les événements focus et fermeture de la fenêtre. S’utilise dans une boucle d’événement !
3. Éléments protégés
3.1 enum MsgAnswer
enum MsgAnswer;
Enumérateur
YES
ponse Oui
NO
ponse Non
Code Source
Représente les réponses que l’utilisateur peut choisir par rapport à la boite de dialogue.
30
3.2 showMessageBox
template<class T>
void showMessageBox(T const &msgBody, bool mbYesNo = true)
Code Source
Definie les paramètres et affiche la boite de dialogue.
Paramètre :
msgBody le message qui sera affiché à l’utilisateur.
mbYesNo vrais affiche une boite de dialogue de type OUI NON et faux affiche juste un bouton OK.
3.3 updateMsgBox
void updateMsgBox(int sliderDirection, bool rightSideValidation, float const &DELTA_TIME, sf::Color textDefaultColor =
DEFAULT_MSG_BOX_TEXT_COLOR, sf::Color selectedTextColor = DEFAULT_MSG_BOX_SELECTED_TEXT_COLOR)
Code Source
Met à jour les informations de la boite de dialogue.
Paramètre :
sliderDirection permet de gérer la direction du GameSlider (cliquer ici 1 pour plus d’information).
rightSideValidation permet de valider une option via le clic sur coté droit d’un écran.
textDefaultColor couleur du text du message.
textSelectedColor couleur des textes des boutons.
3.4 updateTimeWait
void updateTimeWait(float const &DELTA_TIME)
Code Source
Met à jour le compteur qui permet de faire patienter l’utilisateur après le choix d’une option. Ceci permet d’éviter les
choix en boucles.
3.5 drawMsgBox
void drawMsgBox()
Code Source
Affiche la boite de dialogue.
SDM (Step and Draw Manager)
1. class SDM
class SDM;
Entête : isEngine/system/display/SDM.h
31
Code Source
Classe parent qui permet à une scène d’utiliser les fonctions qui mettent à jour et affichent automatiquement les objects
d’une scène. Elle permet aussi de gérer la profondeur d’affichage des objets.
2. Les éléments publics de SDM
2.1 m_SDMsceneObjects
std::vector<std::shared_ptr<MainObject>> m_SDMsceneObjects
Code Source
Conteneur qui permet de stocker les objects (dérivés de la classe MainObject) de la scène qui seront gérés par le SDM.
2.2 SDMgetObject
MainObject* SDMgetObject(const std::string& name)
Code Source
Retourne un object qui se trouve dans le conteneur en fonction de son nom.
Exemple :
auto player = SDMgetObject("Player");
player->setX(777.f);
2.3 SDMaddSceneObject
template <class T>
void SDMaddSceneObject(std::shared_ptr<T> obj, bool callStepFunction = true, bool callDrawFunction = true, const
std::string& name = "null" , bool callEventFunction = false)
Code Source
Permet d’ajouter un objet dans le conteneur.
Paramètre :
obj l’objet à ajouter.
callStepFunction permet de savoir si le SDM doit mettre à jour l’objet.
callDrawFunction permet de savoir si le SDM doit déssiner l’objet.
name permet de donner un nom à l’objet lors de l’ajout.
callEventFunction permet de savoir si le SDM doit appeler la méthode d’évènement de l’objet.
2.4 SDMaddSprite
virtual void SDMaddSprite(sf::Texture &tex, const std::string& name , float x, float y, bool center = false, int depth =
DepthObject::NORMAL_DEPTH)
Code Source
Permet d’ajouter un Sprite SFML dans le conteneur. Elle ne fera pas partie des objets à mettre à jour mais de ceux qui
seront affichés. Le Sprite sera associé à un objet de type MainObject.
2.5 SDMsetObjDepth
32
virtual void SDMsetObjDepth(const std::string& name, int depth)
virtual void SDMsetObjDepth(MainObject *obj, int depth)
Code Source
Permet de définir la profondeur d’affichage d’un objet.
Game Sound
1. class GameSound
class GameSound;
Entête : isEngine/system/sound/GameSound.h
Code Source
Classe qui permet d’utiliser les sons dans le jeu.
2. Les éléments publics de GameSound
2.1 GameSound
GameSound(const std::string& soundName, const std::string& filePath)
Code Source
Constructeur qui permet de charger un son et de lui donner un nom.
2.2 loadResources
void loadResources(const std::string& filePath)
Code Source
Permet de charger le son.
2.3 getSoundBuffer
sf::SoundBuffer& getSoundBuffer()
Code Source
Retourne l’instance Sound Buffer.
2.4 getSound
sf::Sound& getSound()
Code Source
Retourne l’instance Sound.
Game Music
1. class GameMusic
33
class GameMusic;
Entête : isEngine/system/sound/GameMusic.h
Code Source
Classe qui permet d’utiliser les musiques dans le jeu.
2. Les éléments publics de GameMusic
2.1 GameMusic
GameMusic(const std::string& musicName, const std::string& filePath)
Code Source
Constructeur qui permet de charger une musique et de lui donner un nom.
2.2 loadResources
void loadResources(const std::string& filePath)
Code Source
Permet de charger la musique.
2.3 getMusic
sf::Music& getMusic()
Code Source
Retourne l’instance Music.
GSM (Game Sound Manager)
1. class GSM
class GSM;
Entête : isEngine/system/sound/GSM.h
Code Source
Classe parent qui permet à une scène d’ajouter et d’utiliser des sons et musiques sans initialiser les objets SFML.
2. Les éléments publics de GSM
2.1 Les Conteneurs du GSM
std::vector<std::shared_ptr<GameSound>> m_GSMsound
std::vector<std::shared_ptr<GameMusic>> m_GSMmusic
Code Source
Conteneur qui permet de stocker les sons et musiques de la scène qui seront gérés par le GSM.
2.2 GSMaddSound
virtual void GSMaddSound(const std::string& name, const std::string& filePath)
34
Code Source
Permet d’ajouter un son dans le conteneur.
Paramètre :
name nom du son.
filePath chemin du fichier son.
2.3 GSMaddSoundObject
void GSMaddSoundObject(std::shared_ptr<GameSound> sound, bool showError = true)
Code Source
Permet d’ajouter un objet son (is::GameSound) existant dans le conteneur.
showError affiche un message d’erreur en cas de doublon du fichier son.
2.4 GSMaddMusic
virtual void GSMaddMusic(const std::string&name, const std::string& filePath)
Code Source
Permet d’ajouter une musique dans le conteneur.
Paramètre :
name nom de la musique.
filePath chemin du fichier musique.
2.5 GSMaddMusicObject
void GSMaddMusicObject(std::shared_ptr<GameMusic> music, bool showError = true)
Code Source
Permet d’ajouter un objet musique (is::GameMusic) existant dans le conteneur.
showError affiche un message d’erreur en cas de doublon du fichier musique.
2.6 GSMpauseSound
virtual void GSMpauseSound(const std::string& name)
Code Source
Permet de mettre en pause un son gérer par le GSM.
2.7 GSMstopSound
virtual void GSMstopSound(const std::string& name)
Code Source
Permet de stopper un son gérer par le GSM.
2.8 GSMpauseMusic
virtual void GSMpauseMusic(const std::string& name)
35
Code Source
Permet de mettre en pause une musique gérer par le GSM.
2.9 GSMstopMusic
virtual void GSMstopMusic(const std::string& name)
Code Source
Permet de stopper une musique gérer par le GSM.
2.10 GSMdeleteSound
virtual void GSMdeleteSound(const std::string& name)
Code Source
Permet de supprimer un son gérer par le GSM.
2.11 GSMdeleteMusic
virtual void GSMdeleteMusic(const std::string& name)
Code Source
Permet de supprimer une musique gérer par le GSM.
2.12 GSMgetSound
virtual sf::Sound* GSMgetSound(const std::string& name)
Code Source
Retourne un son qui se trouve dans le conteneur en fonction de son nom.
2.13 GSMgetMusic
virtual sf::Music* GSMgetMusic(const std::string& name)
Code Source
Retourne une musique qui se trouve dans le conteneur en fonction de son nom.
Game Texture
1. class GameTexture
class GameTexture;
Entête : isEngine/system/graphic/GameTexture.h
Code Source
Classe qui permet d’utiliser des textures dans le jeu.
2. Les éléments publics de GameTexture
2.1 GameTexture
GameTexture(const std::string& textureName, const std::string& filePath)
36
Code Source
Constructeur qui permet de charger une texture et de lui donner un nom.
2.2 loadResources
void loadResources(const std::string& filePath)
Code Source
Permet de charger la texture.
2.3 getTexture
sf::Texture& getTexture()
Code Source
Retourne l’instance Texture.
Game Font
1. class GameFont
class GameFont;
Entête : isEngine/system/graphic/GameFont.h
Code Source
Classe qui permet d’utiliser des polices dans le jeu.
2. Les éléments publics de GameFont
2.1 GameFont
GameFont(const std::string& fontName, const std::string& filePath, float fontSize
#if defined(IS_ENGINE_HTML_5)
= is::GameConfig::DEFAULT_SFML_TEXT_SIZE
#endif
)
Code Source
Constructeur qui permet de charger une police et de lui donner un nom.
2.2 loadResources
void loadResources(const std::string& filePath)
Code Source
Permet de charger la police.
2.3 getFont
sf::Font& getFont()
37
Code Source
Retourne l’instance Police.
GRM (Graphic Resource Manager)
1. class GRM
class GRM;
Entête : isEngine/system/graphic/GRM.h
Code Source
Classe parent qui permet à une scène d’ajouter et d’utiliser des textures et polices sans initialiser les objets SFML.
2. Les éléments publics du GRM
2.1 Les Conteneurs du GRM
std::vector<std::shared_ptr<GameFont>> m_GRMfont
std::vector<std::shared_ptr<GameTexture>> m_GRMtexture
Code Source
Conteneur qui permet de stocker les textures et polices de la scène qui seront gérés par le GRM.
2.2 GRMaddFont
virtual void GRMaddFont(const std::string& name, const std::string& filePath, float fontSize
#if defined(IS_ENGINE_HTML_5)
= is::GameConfig::DEFAULT_SFML_TEXT_SIZE
#endif
)
Code Source
Permet d’ajouter une police dans le conteneur. Le fontSize doit être renseigné quand on développe sur le Web
(HTML)!
Paramètre :
name nom de la police.
filePath chemin du fichier police.
2.3 GRMaddFontObject
void GRMaddFontObject(std::shared_ptr<GameFont> font, bool showError = true)
Code Source
Permet d’ajouter un objet font (is::GameFont) existant dans le conteneur.
showError affiche un message d’erreur en cas de doublon du fichier police.
38
2.4 GRMaddTexture
virtual void GRMaddTexture(const std::string& name, const std::string& filePath)
Code Source
Permet d’ajouter une texture dans le conteneur.
Paramètre :
name nom de la texture.
filePath chemin du fichier texture.
2.5 GRMaddTextureObject
void GRMaddTextureObject(std::shared_ptr<GameTexture> texture, bool showError = true)
Code Source
Permet d’ajouter un objet texture (is::GameTexture) existant dans le conteneur.
showError affiche un message d’erreur en cas de doublon du fichier texture.
2.6 GRMgetFont
virtual sf::Font* GRMgetFont(const std::string& name)
Code Source
Retourne une police qui se trouve dans le conteneur en fonction de son nom.
2.7 GRMgetTexture
virtual sf::Texture* GRMgetTexture(const std::string& name)
Code Source
Retourne une texture qui se trouve dans le conteneur en fonction de son nom.
2.8 GRMdeleteFont
virtual void GRMdeleteFont(const std::string& name)
Code Source
Permet de supprimer une police gérer le GRM.
2.9 GRMdeleteTexture
virtual void GRMdeleteTexture(const std::string& name)
Code Source
Permet de supprimer une texture gérer par le GRM.
Transition Effect
1. class Transition Effect
39
class TransitionEffect;
Entête : isEngine/system/graphic/TransitionEffect.h
Code Source
Classe qui permet de faire des effets transition de type Fade In et Fade out.
2. Les éléments publics de Transition Effect
2.1 Enum Transition
enum Transition;
Transition
FADE_IN
Représente le fondu
FADE_OUT
Représente le dispaître
Code Source
Représenter le type de transition qui sera.
2.2 TransitionEffect
TransitionEffect(is::GameDisplay *scene)
Code Source
Constructeur qui prend en paramètre la scène dans laquelle la transition sera utilisée.
2.3 step
void step(float const &DELTA_TIME)
Code Source
Permet de mettre à jour l’objet (transition).
2.4 draw
void draw(is::Render &render);
Code Source
Permet d’afficher l’objet (transition).
2.5 setType
void setType(int type);
Code Source
Permet de définir le type de transition.
2.6 getTransitionEnd
bool getTransitionEnd(int type) const
Code Source
Permet de savoir si l’animation de la transition est terminée.
40
Entités
1. class MainObject
class MainObject;
Entête : isEngine/system/entity/MainObject.h
Code Source
Classe de base pour créer les objets (Personnage, Tuiles, Bouton, …) qui seront utilisées dans les scènes. Elle vous offre
des fonctions qui vous permettent de contrôler un objet (les déplacements, détections de collision entre les objets,
calcul de distance, …) et plein d’autres choses qui sont liées au game play du jeu.
2. Les éléments publics de MainObjet
2.1 MainObject
Première forme
MainObject()
Code Source
Constructeur par défaut de la classe.
Deuxième forme
MainObject(float x, float y)
Code Source
Constructeur qui permet d’initialiser l’objet avec un point de départ.
Troisième forme
MainObject(sf::Sprite &spr, float x = 0.f, float y = 0.f)
Code Source
Constructeur qui permet d’initialiser l’objet avec un Sprite et un point de départ.
Quatrième forme
MainObject(sf::Texture &tex, float x, float y , bool center = false)
Code Source
Constructeur qui permet d’initialiser l’objet avec une Texture, un point de départ et centrer le Sprite.
2.2 instanceNumber
static int instanceNumber;
Code Source
Retourne le nombre d’instance de la classe.
2.3 m_SDMcallStep
bool m_SDMcallStep
Code Source
41
Permet de savoir si le SDM peut utiliser la méthode step() (de mise à jour) de l’objet.
2.4 m_SDMcallDraw
bool m_SDMcallDraw
Code Source
Permet de savoir si le SDM peut utiliser la méthode draw() (d’affichage) de l’objet.
2.5 m_SDMcallEvent
bool m_SDMcallEvent
Code Source
Permet de savoir si le SDM peut utiliser la méthode event() (evenement) de l’objet.
2.6 step
virtual void step(float const &DELTA_TIME)
Code Source
Méthode qui met à jour l’objet. A surcharger dans la classe fille de MainObject !
2.7 event
virtual void event(sf::Event &ev)
Code Source
Méthode qui permet d’implementer la partie evenement de l’objet. A surcharger dans la classe fille de MainObject si
la variable "m_SDMcallEvent" est vraie!
2.8 setXStart
virtual void setXStart(float x)
Code Source
Definie la position x de début.
2.9 setYStart
virtual void setYStart(float y)
Code Source
Definie la position y de début.
2.10 setXPrevious
virtual void setXPrevious(float x)
Code Source
Definie la position x précédente.
2.11 setYPrevious
42
virtual void setYPrevious(float y)
Code Source
Définie la position y précédente.
2.12 setStartPosition
virtual void setStartPosition(float x, float y)
Code Source
Définie la position x et y de début.
2.13 setX
virtual void setX(float x)
Code Source
Définie la position x.
2.14 setY
virtual void setY(float y)
Code Source
Définie la position y.
2.15 moveX
virtual void moveX(float x)
Code Source
Permet de bouger l’objet sur l’axe des x.
2.16 moveY
virtual void moveY(float y)
Code Source
Permet de bouger l’objet sur l’axe des y.
2.17 setPosition
virtual void setPosition(float x, float y)
Code Source
Définie la position x et y.
2.18 setSpriteScale
virtual void setSpriteScale(float x, float y)
Code Source
Définie l’échelle x et y du spirite de l’objet.
2.19 setSpeed
43
virtual void setSpeed(float val)
Code Source
Définie la vitesse de l’objet.
2.20 setHsp
virtual void setHsp(float val)
Code Source
Définie la vitesse horizontal.
2.21 setVsp
virtual void setVsp(float val)
Code Source
Définie la vitesse vertical.
2.22 setAngularMove
virtual void setAngularMove(float const &DELTA_TIME, float speed, float angle)
Code Source
Permet de bouger l’objet en fonction d’un angle et d’une vitesse.
2.23 setFrame
virtual void setFrame(float val)
Code Source
Définie le cadre de l’objet.
2.24 setImageXscale
virtual void setImageXscale(float val)
Code Source
Définie l’échelle x de l’objet.
2.25 setImageYscale
virtual void setImageYscale(float val)
Code Source
Définie l’échelle y de l’objet.
2.26 setImageScale
virtual void setImageScale(float val)
Code Source
Définie l’échelle x et y de l’objet avec une même valeur.
2.27 setImageScaleX_Y
44
virtual void setImageScaleX_Y(float x, float y)
Code Source
Définie l’échelle x et y de l’objet.
2.28 setImageAngle
virtual void setImageAngle(float val)
Code Source
Définie l’angle de l’objet.
2.29 setXOffset
virtual void setXOffset(float val)
Code Source
Définie le décalage x de l’objet.
2.30 setYOffset
virtual void setYOffset(float val)
Code Source
Définie le décalage y de l’objet.
2.31 setXYOffset
virtual void setXYOffset(float x, float y)
Code Source
Définie le décalage x et y de l’objet.
2.32 setXYOffset
virtual void setXYOffset()
Code Source
Définie le décalage x et y de l’objet en se basant sur le centre du sprite de l’objet.
2.33 setTime
void setTime(float x)
Code Source
Définie la valeur de la variable m_time de l’objet.
2.34 setImageAlpha
virtual void setImageAlpha(int val)
Code Source
Définie l’image alpha de l’objet.
2.35 setImageIndex
45
virtual void setImageIndex(int val)
Code Source
Définie la sous image de l’objet.
2.36 setMaskW
virtual void setMaskW(unsigned int val)
Code Source
Définie la largeur du masque de collision de l’objet.
2.37 setMaskH
virtual void setMaskH(unsigned int val)
Code Source
Définie la hauteur du masque de collision de l’objet.
2.38 setRectangleMask
virtual void setRectangleMask(int width, int height)
Code Source
Définie la largeur et la hauteur du masque de collision rectangle de l’objet et l’utlise comme masque par défaut.
2.39 setCircleMask
virtual void setCircleMask(float raduis)
Code Source
Définie le rayon du masque de collision cercle de l’objet et l’utlise comme masque par défaut.
2.40 setIsActive
virtual void setIsActive(bool val)
Code Source
Définie l’état d’activité de l’objet.
2.41 updateCollisionMask
Première forme :
virtual void updateCollisionMask()
Code Source
Met à jour les informations (taille, position, …) du masque de collision.
Deuxième forme:
virtual void updateCollisionMask(int x, int y)
Code Source
Met à jour la position du masque de collision en fonction d’un point x et y différents de celui de l’objet.
46
2.42 centerCollisionMask
virtual void centerCollisionMask(int x, int y)
Code Source
Centre la position du masque de collision en fonction d’un point x et y.
2.43 updateSprite
Premier forme
virtual void updateSprite()
Code Source
Met à jour le sprite de l’objet avec les valeurs des variables (alpha, scale, …) qui se trouvent dans l’objet.
Deuxième forme
virtual void updateSprite(float x, float y, float angle = 0.f, int alpha = 255, float xScale = 1.f, float yScale = 1.f)
Code Source
Met à jour le sprite de l’objet avec des valeurs externes.
2.44 draw
virtual void draw(is::Render &surface)
Code Source
Permet d’afficher l’objet.
2.45 drawMask
virtual void drawMask(is::Render &surface, sf::Color color = sf::Color::Blue)
Code Source
Permet d’afficher le masque de collision qui a été défini (Rectangle ou Cercle) pour l’objet.
2.46 getMask
virtual const Rectangle& getMask() const noexcept
Code Source
Retourne le masque de collision rectangle (par défaut).
2.47 getCircleMask
virtual const Circle& getCircleMask() const noexcept
Code Source
Retourne le masque de collision cercle.
2.48 getX
virtual float getX() const
Code Source
47
Retourne la position x de l’objet.
2.49 getY
virtual float getY() const
Code Source
Retourne la position y de l’objet.
2.50 getXStart
virtual float getXStart() const
Code Source
Retourne la position x de début de l’objet.
2.51 getYStart
virtual float getYStart() const
Code Source
Retourne la position y de but de l’objet.
2.52 getXPrevious
virtual float getXPrevious() const
Code Source
Retourne la position x précédente de l’objet.
2.53 getYPrevious
virtual float getYPrevious() const
Code Source
Retourne la position y précédente de l’objet.
2.54 distantToPoint
virtual float distantToPoint(float x, float y) const
Code Source
Retourne la distance entre l’objet et un point x et y.
2.55 distantToObject
virtual float distantToObject(std::shared_ptr<MainObject> const &other, bool useSpritePosition) const
Code Source
Retourne la distance entre l’objet et un autre.
Paramètre si useSpritePosition est vrais on utilise la position du sprite de l’objet pour faire le test si non on utilise la
position x, y de l’objet.
2.56 pointDirection
Première forme
48
virtual float pointDirection(float x, float y) const
Code Source
Retourne la direction (angle) de l’objet par rapport à un point.
Deuxième forme
virtual float pointDirection(std::shared_ptr<MainObject> const &other) const
Code Source
Retourne la direction (angle) de l’objet par rapport à un autre. Ici l’autre objet est un pointeur.
2.57 pointDirectionSprite
Première forme
virtual float pointDirectionSprite(float x, float y) const
Code Source
Retourne la direction (angle) du sprite de l’objet par rapport à un point.
Deuxième forme
virtual float pointDirectionSprite(std::shared_ptr<MainObject> const &other) const
Code Source
Retourne la direction (angle) du sprite de l’objet par rapport à un autre.
2.58 getSpeed
virtual float getSpeed() const
Code Source
Retourne la vitesse de l’objet.
2.59 getHsp
virtual float getHsp() const
Code Source
Retourne la vitesse horizontale de l’objet.
2.60 getVsp
virtual float getVsp() const
Code Source
Retourne la vitesse verticale de l’objet
2.61 getFrame
virtual float getFrame() const
Code Source
Retourne le numéro du sous image qui est en cours d’affichage.
49
2.62 getFrameStart
virtual float getFrameStart() const
Code Source
Retourne le numéro du sous image de début.
2.63 getFrameEnd
virtual float getFrameEnd() const
Code Source
Retourne le numéro du sous image de fin.
2.64 getImageXscale
virtual float getImageXscale() const
Code Source
Retourne l’échelle x de l’objet.
2.65 getImageYscale
virtual float getImageYscale() const
Code Source
Retourne l’échelle y de l’objet.
2.66 getImageScale
virtual float getImageScale() const
Code Source
Retourne l’échelle de l’objet.
2.67 getImageAngle
virtual float getImageAngle() const
Code Source
Retourne l’angle de l’image de l’objet.
2.68 getXOffset
virtual float getXOffset() const
Code Source
Retourne le décallage en x de l’objet.
2.69 getYOffset
virtual float getYOffset() const
Code Source
Retourne le décallage en y de l’objet.
50
2.70 getTime
virtual float getTime() const
Code Source
Retourne la valeur de la variable m_time.
2.71 getInstanceId
virtual int getInstanceId() const
Code Source
Retourne le numéro de l’objet.
2.72 getMaskW
virtual unsigned int getMaskW() const
Code Source
Retourne la largeur du masque de collision.
2.73 getMaskH
virtual unsigned int getMaskH() const
Code Source
Retourne la hauteur du masque de collision.
2.74 getIsActive
virtual bool getIsActive() const
Code Source
Retourne l’état de l’objet.
2.75 getImageAlpha
virtual int getImageAlpha() const
Code Source
Retourne l’image alpha de l’objet.
2.76 getImageIndex
virtual int getImageIndex() const
Code Source
Retourne l’index de l’image.
2.77 getSpriteWidth
virtual int getSpriteWidth() const
Code Source
Retourne la largeur du sprite.
51
2.78 getSpriteHeight
virtual int getSpriteHeight() const
Code Source
Retourne la hauteur du sprite.
2.79 getSpriteX
virtual float getSpriteX() const
Code Source
Retourne la position x du sprite.
2.80 getSpriteY
virtual float getSpriteY() const
Code Source
Retourne la position y du sprite.
2.81 getTextureWidth
virtual int getTextureWidth() const
Code Source
Retourne la largeur de la texture du sprite.
2.82 getTextureHeight
virtual int getTextureHeight() const
Code Source
Retourne la hauteur de la texture du sprite.
2.83 getSpriteCenterX
virtual int getSpriteCenterX() const
Code Source
Retourne le centre x du sprite.
2.84 getSpriteCenterY
virtual int getSpriteCenterY() const
Code Source
Retourne le centre y du sprite.
2.85 getSpriteNumberSubImage
virtual int getSpriteNumberSubImage(int subImageWidth) const
Code Source
52
Retourne le nombre de sous images d’une sprite (sur l’axe horizontal). subImageWidth représente la taille d’une sous
image (32 pixels).
2.86 placeMetting
Première forme
virtual bool placeMetting(int x, int y, MainObject const *other)
Code Source
Retourne vrai s’il y a collision avec un autre objet, faux si non.
Deuxième forme
virtual bool placeMetting(int x, int y, std::shared_ptr<MainObject> const &other)
Code Source
Retourne vrai s’il y a collision avec un autre objet, faux si non. Ici l’autre objet est un pointeur.
2.87 inViewRec
bool inViewRec(sf::View const &view, bool useTexRec = true)
Code Source
Permet de savoir si l’obet est dans le rectangle de la vue. Si le paramètre useTexRec est vrai, le rectangle du sprite
sera utilisé pour faire le test sinon celui du masque de collision serait utilisé.
2.88 getSprite
virtual sf::Sprite& getSprite()
Code Source
Retourne le sprite de l’objet.
2.89 setFrameLimit
virtual void setFrame(float frameStart, float frameEnd = -1.f)
Code Source
Définie l’image de début et de fin qui servira à faire l’animation du sprite de l’objet.
3. Autres fonctions de MainObject
3.1 instanceExist
Première forme
template<class T>
bool instanceExist(std::shared_ptr<T> const &obj)
Code Source
Retourne vrai si l’instance existe, faux si non.
Deuxième forme
template<class T>
bool instanceExist(T const *obj)
53
Code Source
Retourne vrai si l’instance existe, faux si non.
3.2 operator()
Comparateur de position
class CompareX;
Code Source
Foncteur qui sert à trier les objets par rapport à leur position x.
bool operator()(std::shared_ptr<MainObject> const &a, std::shared_ptr<MainObject> const &b) const
bool operator()(MainObject const *a, MainObject const *b) const
Code Source
Sert à trier les objets en fonction de leurs positions x.
Comparateur de profondeur
class CompareDepth;
Code Source
Foncteur qui sert à trier les objets par rapport à leur profondeur.
bool operator()(std::shared_ptr<MainObject> const &a, std::shared_ptr<MainObject> const &b) const
Code Source
Sert à trier les objets en fonction de leurs profondeurs.
3.3 sortObjArrayByX
template<class T>
void sortObjArrayByX(std::list<std::shared_ptr<T>> &v)
Code Source
Trie un tableau (std::list) d’objets en fonction de la position x.
3.4 sortObjArrayByDepth
template<class T>
void sortObjArrayByDepth(std::list<std::shared_ptr<T>> &v)
Code Source
Trie un tableau (std::list) d’objets en fonction de la profondeur.
3.5 operator<
bool operator<(const MainObject *a, const MainObject &b);
bool operator<(const MainObject &b, const MainObject *a);
bool operator<(std::shared_ptr<MainObject> const &a, const MainObject &b)
54
bool operator<(const MainObject &b, std::shared_ptr<MainObject> const &a)
Code Source
Retourne vrai si la position de l’objet A est inférieur à celui de B, faux si non.
Les formes pour les masques collisions
Entête : isEngine/system/entity/Form.h
1. class Rectangle
class Rectangle;
Code Source
Représente le masque de collision rectangle. Ces membres m_left, m_top, m_right, m_bottom permettent de définir la
taille du masque.
2. class Circle
class Circle;
Code Source
Représente le masque de collision cercle. Ces membres m_x, m_y, m_raduis permettent de définir la position et le
rayon du cercle.
Circle()
Code Source
Constructeur par défaut.
Les Classes Parentes de MainObject
1. class DepthObject
class DepthObject;
Entête : isEngine/system/entity/parents/DephObject.h
Code Source
Classe qui offre des méthodes pour gérer la profondeur d’affichage des objets dans une scène.
1.1 enum Depth
enum Depth;
Enumérateur
VERY_BIG_DEPTH
Très Grande profondeur
BIG_DEPTH
Grande profondeur
NORMAL_DEPTH
Profondeur normal
SMALL_DEPTH
Petite profondeur
VERY_SMALL_DEPTH
Très petite profondeur
55
Code Source
Représente le niveau de profondeur d’un objet.
1.2 DepthObject
DepthObject(int Depth)
Code Source
Constructeur pour définir une profondeur.
1.3 setDepth
virtual void setDepth(int val)
Code Source
Définie la profondeur de l’objet.
1.4 getDepth
virtual int getDepth() const
Code Source
Retourne la profondeur de l’objet.
2. class Destructible
class Destructible;
Entête : isEngine/system/entity/parents/Destructible.h
Code Source
Classe qui offre des méthodes pour gérer la destruction d’un objet.
2.1 Destructible
Destructible()
Code Source
Constructeur par défaut.
2.2 setDestroyed
virtual void setDestroyed()
Code Source
Enclenche la destruction d’un objet.
2.3 isDestroyed
virtual bool isDestroyed() const
Code Source
Retourne l’état de l’objet.
3. class Visibility
56
class Visibility;
Entête : isEngine/system/entity/parents/Visibility.h
Code Source
Class qui offre des méthodes pour gérer la visibilité d’un objet.
3.1 Visibility
explicit Visibility(bool defaultVisibility = true)
Code Source
Constructeur de la classe.
3.2 setVisible
void setVisible(bool value)
Code Source
Définie la visibilité de l’objet.
3.3 getVisible
bool getVisible() const
Code Source
Retourne l’état de l’objet.
4. class Health
class Health;
Entête : isEngine/system/entity/parents/Health.h
Code Source
Class qui offre des méthodes pour gérer la santé d’un objet.
4.1 Health
Prémière forme
Health(int health)
Code Source
Constructeur de la classe, prend en paramètre la santé à attribuer à l’objet. Ici la valeur maximale de la santé est égale à
la santé définie.
Deuxième forme
Health(int health, int maxHealth)
Code Source
Constructeur de la classe prend en paramètre la santé à attribuer à l’objet et la valeur maximale.
4.2 setHealth
57
virtual void setHealth(int val)
Code Source
Définie la santé de l’objet.
4.3 setMaxHealth
virtual void setMaxHealth(int val)
Code Source
Définie la santé maximale (la limite à ne pas dépasser) de l’objet.
4.4 addHealth
virtual void addHealth(int val = 1)
Code Source
Ajoute la santé à l’objet. Peut servir aussi à le retancher si on met une valeur négative.
4.5 getHealth
virtual int getHealth() const
Code Source
Retourne la santé de l’objet.
4.6 getMaxHealth
virtual int getMaxHealth() const
Code Source
Retourne la santé maximale (la limite à ne pas dépasser) de l’objet.
5. class HurtEffect
class HurtEffect;
Entête : isEngine/system/entity/parents/HurtEffect.h
Code Source
Classe qui offre des méthodes pour faire un effet invulnérabilité sur un objet. C'est-dire faire clignoter l’objet pendant
un certain temps (e.g. quand le joueur est attaqué par un ennemi il devient invunérable en clignotant pendant une
durrée limitée).
5.1 HurtEffect
HurtEffect(sf::Sprite &sprParent) :
Code Source
Constructeur de la classe prend en paramètre le sprite sur lequel l’effet invunérabilité sera éffectué.
5.2 hurtStep
void hurtStep(float const &DELTA_TIME)
Code Source
58
Permet de faire l’animation d’invunérabilté.
5.3 setIsHurt
void setIsHurt(float durration = 100.f)
Code Source
Définie la durrée (en milliseconde) de l’invunérabilité de l’objet.
5.4 getIsHurt
bool getIsHurt() const
Code Source
Retourne vrai si l’objet est invunérable, faux si non.
6. class ScorePoint
class ScorePoint;
Entête : isEngine/system/entity/parents/ScorePoint.h
Code Source
Classe qui offre des méthodes pour gérer le score à attribuer à un objet (e.g. chaque ennemi possède un point
particulier lors de sa création qu’on ajoute au score global du joueur quand il est vaincu).
6.1 ScorePoint
explicit ScorePoint(int point = 0)
Code Source
Constructeur de la classe, prend en paramètre le point à attribuer à l’objet.
6.2 setScorePoint
virtual void setScorePoint(int point)
Code Source
Définie le point de l’objet.
6.3 getScorePoint
virtual int getScorePoint() const
Code Source
Retourne le point attribué à l’objet.
7. class Step
class Step;
Entête : isEngine/system/entity/parents/Step.h
Classe qui offre des méthodes pour gérer les differents étapes d’un objet (e.g. pour faire décoler une fusé il faut passer
par plusieurs étapes).
7.1 Step
59
explicit Step(int step = 0)
Code Source
Constructeur de la classe.
7.2 setStep
virtual void setStep(int val)
Code Source
Définie l’étape de l’objet.
7.3 addStep
virtual void addStep()
Code Source
Avance l’étape de l’objet.
7.4 reduceStep
virtual void reduceStep()
Code Source
Réduit l’etape de l’objet.
7.5 getStep
virtual int getStep() const
Code Source
Retourne l’étape à laquelle l’objet est.
8. class Name
class Name;
Entête : isEngine/system/entity/parents/Name.h
Classe parent qui offre des méthodes pour gérer le nom d’un objet.
8.1 Name
explicit Name(const std::string& name = "Unknown")
Code Source
Constructeur qui permet de définir le nom de l’objet.
8.2 setName
virtual void setName(const std::string& soundName)
Code Source
Permet de définir le nom de l’objet.
8.3 getName
60
virtual const std::string getName() const noexcept
Code Source
Retourne le nom de l’objet.
9. class FilePath
class FilePath;
Entête : isEngine/system/entity/parents/FilePath.h
Classe parent qui offre des méthodes pour gérer le chemin d’un fichier.
9.1 FilePath
FilePath(const std::string& filePath)
Code Source
Constructeur de la classe, elle prend en paramètre le chemin du fichier à charger.
9.2 setFilePath
virtual void setFilePath(const std::string& filePath)
Code Source
Permet de définir le chemin du fichier.
9.3 getFilePath
virtual const std::string getFilePath() const noexcept
Code Source
Retourne le chemin du fichier.
9.4 getFileIsLoaded
virtual bool getFileIsLoaded() const
Code Source
Retourne vrais quand le fichier a été bien chargé faux sinon.
10. class Type
class Type;
Entête : isEngine/system/entity/parents/Type.h
Classe parent qui offre des méthodes pour gérer le type d’une classe en fonction d’un enum.
10.1 Type
Type(int type)
Code Source
Constructeur de la classe, elle prend en paramètre le type (la valeur d’un enum).
10.2 setType
61
virtual void setType(int type)
Code Source
Permet de définir le type de l’objet.
10.3 getType
virtual int getType() const
Code Source
Retourne le type de l’objet.
Le Backgroud
1. class Background
class Background;
Entête : isEngine/system/entity/Background.h
Code Source
Cette Classe permet de déssiner un Sprite sous forme d’arrière plan, avec la possibilité de l’utiliser pour remplir une
scène et de le faire défiler avec une vitesse horizontale et verticale.
2. Les méthodes publiques
2.1 Background
Background(sf::Texture &tex, float x, float y, is::GameDisplay *scene, float hSpeed = 0.f, float vSpeed = 0.f,
bool fillHorizontal = true, bool fillVertical = true)
Code Source
Constructeur de la classe, elle prend en paramètre la texture, la position, la scene, la vitesse de défilement horizontale et
vertciale et les deux autres paramètres qui servent à faire le remplissage horizontal et vertical.
2.2 step
void step(float const &DELTA_TIME)
Code Source
Permet de mettre à jour l’objet.
Le Bouton
1. class Button
class Button;
Entête : isEngine/system/entity/Button.h
Code Source
62
Cette Classe permet d’utiliser un bouton dans une scene.
2. Les méthodes publiques
2.1 Button
Première forme
Button(sf::Texture &tex, float x, float y, std::string const &title, std::string const &name, bool center, is::GameDisplay
*scene)
Code Source
Constructeur de la classe, elle prend en paramètre la texture qui sera utiliser comme cadre du boutton, la position, le
titre, le nom de l’objet, centrer le bouton par rapport à la position et la scene dans la quelle il sera utilisé.
Deuxième forme
Button(sf::Texture &tex , sf::Font &font, float x, float y, std::string const &title, std::string const &name, bool center, int
textSize, is::GameDisplay *scene)
Code Source
Constructeur de la classe, elle prend en paramètre la texture qui sera utiliser comme cadre du boutton, la position, la
police de caractère, le titre, le nom de l’objet, centrer le bouton par rapport à la position, la taille du texte et la scene
dans la quelle il sera utilisé.
2.2 setTitle
virtual void setTitle(std::string const &title)
Code Source
Defnie le titre du bouton.
2.3 onClick
virtual void onClick() = 0;
Code Source
Permet de définir l’action qui sera éffectuée quand on clique sur le bouton.
2.4 onMouseOver
virtual void(std::string const &title)
Code Source
Permet de définir l’action qui sera éffectuée quand on survol le bouton avec la sourie (doigt sur Android).
2.5 event
virtual void(std::string const &title)
Code Source
Gère la partie evenement du bouton.
2.6 step
virtual void step(float const &DELTA_TIME)
Code Source
63
Permet de mettre à jour l’objet.
2.7 draw
virtual void draw(is::Render &surface)
Code Source
Affiche le bouton avec le titre.
2.8 getText
virtual sf::Text& getText()
Code Source
Retourne l’objet text du bouton.
2.9 getIsInCollision
virtual bool getIsInCollision() const
Code Source
Retourne vrai quand le sourie (doigt sur Android) est en collision avec le bouton.
Admob
1. class AdmobManager
class AdmobManager;
Entête : isEngine/system/android/AdmobManager.h
Code Source
Classe qui permet d’utiliser le SDK Admob dans le jeu. Elle offre des fonctions pour gérer les annonces de type bannière
et vidéo récompense.
2. Les méthodes publiques
2.1 AdmobManager
AdmobManager(sf::RenderWindow &window, ANativeActivity* activity, JNIEnv* env)
Code Source
Constructeur de la classe, elle prend en paramètre la fenêtre, l’activité Android et l’environnement JNI.
2.2 loadBannerAd
void loadBannerAd()
Code Source
Lance une requête pour l’annonce de type bannière.
2.3 showBannerAd
void showBannerAd()
64
Code Source
Affiche une bannière d’annonce à condition que la requête ait été bien exécutée.
2.4 hideBannerAd
void hideBannerAd()
Code Source
Cache la bannière d’annonce.
2.5 loadRewardVideo
void loadRewardVideo()
Code Source
Lance une requête pour l’annonce de type vidéo récompense.
2.6 showRewardVideo
virtual int showRewardVideo()
Code Source
Permet de lancer une annonce de type vidéo récompense.
Retourne 1 si la vidéo récompense c’est bien lancé et 0 s‘il y a une erreur (se produit souvent quand la requête de
l’annonce n’a pas fonctionné).
2.7 updateSFMLApp
auto updateSFMLApp(bool whiteColor)
Code Source
Met à jour l’application SFML en arrière-plan lorsqu’une annonce est affichée. Ceci permet d’eviter le plantage du
programme principal.
2.8 checkAdObjInit
void checkAdObjInit()
Code Source
Assure l’initialisation des composants d’Admob.
2.9 checkAdRewardObjReinitialize
void checkAdRewardObjReinitialize()
Code Source
Rénitialise les composants d’Admob.
3. Autres Fonction dAdmobManager
3.1 ProcessEvents & WaitForFutureCompletion
static bool ProcessEvents(int msec)
static void WaitForFutureCompletion(firebase::FutureBase future)
65
Code Source
Assure le bon fonctionnement des tests sur les composants d’annonces.
3.2 checkAdState
static bool checkAdState(firebase::FutureBase future)
Code Source
Retourne vrais si le test sur le composant d’annonce a été bien effectué, faux si non.
Temps
1. class GameTime
class GameTime;
Entête : isEngine/system/function/GameTime.h
Code Source
Cette Classe permet de manipuler le temps du jeu (le chronomètre). Très utilise pour les jeux de plateforme style Super
Mario Bros ou Sonic qui utilise un chronomètre dans un niveau.
2. Les methods publiques de GameTime
2.1 GameTime
Première forme
GameTime()
Code Source
Constructeur par défaut, initialise tous les compteurs (minute, seconde, milliseconde) à zéro (0).
Deuxième forme
GameTime(unsigned int ms)
Code Source
Constructeur pour initialiser le temps avec les millisecondes qui seront distribuées plus tard en minutes et secondes.
Troisième forme
GameTime(unsigned int m, unsigned int s, unsigned int ms = 0)
Code Source
Constructeur pour initialiser le temps avec les minutes, secondes et millisecondes.
2.2 step
void step(float const &DELTA_TIME, float const &VALUE_CONVERSION, float const &VALUE_TIME)
Code Source
Lancer le compte à rebours du chronomètre pour qu'il s'arrête à zéro (0).
2.3 addTimeValue
66
void addTimeValue(int m, int s = 0, int ms = 0)
Code Source
Ajouter les minutes, les secondes et les millisecondes au temps actuel.
2.4 setTimeValue
void setTimeValue(int m, int s = 0, int ms = 0)
Code Source
Définie une nouvelle minute, seconde et milliseconde pour le temps actuelle.
2.5 setMSecond
void setMSecond(int ms)
Code Source
Définie des millisecondes qui seront distribuées en minutes et secondes.
2.6 getTimeString
const std::string getTimeString() const noexcept
Code Source
Retourne le temps actuel sous la forme d'une chaîne de caractère (exemple 00: 00.00).
2.7 getTimeValue
unsigned int getTimeValue() const
Code Source
Retourne le temps en milliseconde.
2.8 getMinute
unsigned int getMinute() const
Code Source
Retourne la minute.
2.9 getSecond
unsigned int getSecond() const
Code Source
Retourne la seconde.
2.10 getMSecond
unsigned int getMSecond() const
Code Source
Retourne la milliseconde.
2.11 compareTime
67
bool compareTime(unsigned int m, unsigned int s = 0, unsigned int ms = 0) const
Code Source
Compare le temps renseigné et le temps de l'objet.
Retourne vrai si le temps renseigné est supérieur au temps de l'objet faux sinon.
2.12 operator=
GameTime& operator=(GameTime const &t)
Code Source
Opérateur d’égalité pour comparer deux objets de type temps.
2.13 operator<<
friend std::ostream& operator<<(std::ostream &flux, GameTime const &t)
Code Source
Operateur pour afficher le temps avec le flux std::cout.
3. Autres Fonctions de GameTime
bool operator==(GameTime const &t1, GameTime const &t2)
bool operator>(GameTime const &t1, GameTime const &t2)
bool operator<(GameTime const &t1, GameTime const &t2)
Code Source
Ces Opérateurs permettent de faire des comparaisons avec les objets de type temps.
Commande du jeu
1. class GameKeyData
class GameKeyData
Entête : isEngine/system/function/GameKeyData.h
Code Source
Classe qui permet de gérer les commandes du jeu. Elle prend en compte le clavier et la souris sur PC et devient un Game
Pad Virtuel sur Android.
2. Les éléments de GameKeyData
2.1 enum VirtualKeyIndex
enum VirtualKeyIndex;
Enumérateur
V_KEY_LEFT
Représente la touche directionnelle GAUCHE
V_KEY_RIGHT
Représente la touche directionnelle DROITE
V_KEY_UP
Représente la touche directionnelle HAUT
V_KEY_DOWN
Représente la touche directionnelle BAS
V_KEY_A
Représente la touche A
68
V_KEY_B
Représente la touche B
V_KEY_NONE
Aucune touche
Code Source
Repérsente les commandes du jeu.
2.2 GameKeyData
GameKeyData(is::GameDisplay *scene)
Code Source
Constructeur qui prend en paramètre la scène.
2.3 loadResources
void loadResources(sf::Texture &tex)
Code Source
Permet de charger la texture qui servira à créer les touches du Game Pad Virtuel.
2.4 step
void step(float const &DELTA_TIME)
Code Source
Met à jour la position du Game Pad Virtuel sur l’écran et permet aussi de détecter l’utilisation des commandes.
2.5 draw
void draw(is::Render &surface)
Code Source
Affiche le Game Pad Virtuel.
2.6 m_keyPausePressed
bool m_keyPausePressed
Code Source
Détermine si la touche de pause est appuyée.
2.7 m_keyLeftPressed
bool m_keyLeftPressed
Code Source
Stock l’état de la touche GAUCHE.
2.8 m_keyRightPressed
bool m_keyRightPressed
Code Source
Stock l’état de la touche DROITE.
69
2.9 m_keyUpPressed
bool m_keyUpPressed
Code Source
Stock l’état de la touche HAUT.
2.10 m_keyDownPressed
bool m_keyDownPressed
Code Source
Stock l’état de la touche BAS.
2.11 m_keyAPressed
bool m_keyAPressed
Code Source
Stock l’état de la touche A.
2.12 m_keyBPressed
bool m_keyBPressed
Code Source
Stock l’état de la touche B.
2.13 m_keyAUsed
bool m_keyAUsed
Code Source
Stock l’état de la touche A quand elle est utilisée.
2.14 m_keyBUsed
bool m_keyBUsed
Code Source
Stock l’état de la touche B quand elle est utilisée.
2.15 m_keyLeftUsed
bool m_keyLeftUsed
Code Source
Stock l’état de la touche GAUCHE quand elle est utilisée.
2.16 m_keyRightUsed
bool m_keyRightUsed
Code Source
Stock l’état de la touche DROITE quand elle est utilisée.
70
2.17 m_keyUpUsed
bool m_keyUpUsed
Code Source
Stock l’état de la touche HAUT quand elle est utilisée.
2.18 m_keyDownUsed
bool m_keyDownUsed
Code Source
Stock l’état de la touche BAS quand elle est utilisée.
2.19 m_disableAllKey
bool m_disableAllKey
Code Source
Permet de désactiver tous les commandes du jeu.
2.20 m_hideGamePad
bool m_hideGamePad
Code Source
Permet de cacher le Game Pad Virtuel sur Android.
2.21 m_keyboardA
sf::Keyboard::Key m_keyboardA
Code Source
Représente la touche du clavier qui sert de touche A.
2.22 m_keyboardB
sf::Keyboard::Key m_keyboardB
Code Source
Représente la touche du clavier qui sert de touche B.
2.23 m_keyboardLeft
sf::Keyboard::Key m_keyboardLeft
Code Source
Représente la touche du clavier qui sert de touche GAUCHE.
2.24 m_keyboardRight
sf::Keyboard::Key m_keyboardRight
Code Source
Représente la touche du clavier qui sert de touche DROITE.
71
2.25 m_keyboardUp
sf::Keyboard::Key m_keyboardUp
Code Source
Représente la touche du clavier qui sert de touche HAUT.
2.26 m_keyboardDown
sf::Keyboard::Key m_keyboardDown
Code Source
Représente la touche du clavier qui sert de touche BAS.
2.27 m_moveKeyPressed
VirtualKeyIndex m_moveKeyPressed
Code Source
Permet de savoir si les touches directionnelles virtuelles sont appuyées.
2.28 m_actionKeyPressed
VirtualKeyIndex m_actionKeyPressed
Code Source
Permet de savoir si les touches virtuelles A, B sont appuyées.
2.29 keyLeftPressed
bool keyLeftPressed()
Code Source
Retourne vrai si la touche directionnelle GAUCHE est appuyée, faux si non.
2.30 keyRightPressed
bool keyRightPressed()
Code Source
Retourne vrai si la touche directionnelle DROITE est appuyée, faux si non.
2.31 keyUpPressed
bool keyUpPressed()
Code Source
Retourne vrai si la touche directionnelle HAUT est appuyée, faux si non.
2.32 keyDownPressed
bool keyDownPressed()
Code Source
Retourne vrai si la touche directionnelle BAS est appuyée, faux si non.
72
2.33 keyAPressed
bool keyAPressed()
Code Source
Retourne vrai si la touche A est appuyée, faux si non.
2.34 keyBPressed
bool keyBPressed()
Code Source
Retourne vrai si la touche B est appuyée, faux si non.
2.35 virtualKeyPressed
bool virtualKeyPressed(VirtualKeyIndex virtualKeyIndex)
Code Source
Retourne vrai si la touche virtuelle correspondante est appuyée, faux si non.
3. Autres fonctions de GameKeyData
Ces fonctions se trouvent dans GameKeyName.h.
Entête : isEngine/system/function/GameKeyName.h
Première forme
inline const char *getKeyName(const sf::Keyboard::Key key)
Code Source
Retourne le nom de la touche du clavier sous forme de chaine de caractèère.
Deuxième forme
inline std::wstring getKeyWName(const sf::Keyboard::Key key)
Code Source
Retourne le nom de la touche du clavier sous forme de chaine std::wstring.
Game Slider
1. class Game Slider
class TransitionEffect;
Entête : isEngine/system/graphic/GameSlider.h
Code Source
Classe qui permet de faire des glissades avec le doigt ou sourie pour naviguer dans les menu.
2. Les éléments publics de Game Slider
73
2.1 Slider Direction
enum SlideDirection;
SlideDirection
SLIDE_NONE
Représente aucune glissade
SLIDE_UP
Représente glissade vers le haut
SLIDE_DOWN
Représente glissade vers le bas
SLIDE_RIGHT
Représente glissade vers la droite
SLIDE_LEFT
Représente glissade vers la gauche
Code Source
Représenter le type de glissade fait par l’utilisateur.
2.2 GameSlider
GameSlider(is::GameDisplay *scene)
Code Source
Constructeur qui prend en paramètre la scène dans laquelle la fonction glissade sera utilisée.
2.3 step
void step(float const &DELTA_TIME)
Code Source
Permet de mettre à jour l’objet.
2.4 getSliderDirection
SlideDirection getSlideDirection() const
Code Source
Retourne le type de glissade effectuée par l’utilisateur (Prend en charge le cas ou l’utilisateur n’a pas fait de glissade).
Game Système
1. class GameSystem
class GameSystem;
Entête : isEngine/system/function/GameSystem.h
Code Source
Classe de base qui permet d’assurer le partage des informations du jeu entre les différents composants du moteur de
jeu. Elle contient les variables globales et fonctions qui assurent le bon fonctionnement du moteur. Elle permet aussi
de stocker des resources (Sons, Musiques, Images, Polices) de façons permanentes !
2. Les éléments de GameSystem
2.1 enum ValidationButton
enum ValidationButton;
74
Enémerateur
MOUSE
Représente le bouton de validation de la souris (s'il est utilisé, il devient une action tactile sur
Android)
KEYBOARD
Représente le bouton de validation du clavier
ALL_BUTTONS
Représente le bouton de validation de la souris et du clavier (s'il est utilisé, il devient une
action tactile sur Android)
Code Source
Représenter la touche de validation sur PC, Il permet de connaitre le bouton qui sera utilisé lors d’un test de validation.
2.2 GameSystem
GameSystem()
Code Source
Constructeur par faut.
2.3 isPressed
bool isPressed(
#if defined(__ANDROID__)
int finger = 0
#else
ValidationButton validationButton = ALL_BUTTONS
#endif
) const
Code Source
Windows, Linux:
Vérifie si la touche de validation est appuyée.
La touche de validation est définie dans GameConfig.h (voir ici : 3.1).
Android :
Vérifie si l'écran est touché par l'utilisateur.
Paramètre :
finger index du doigt (sur Android).
validationButton Représente le bouton de validation à utiliser pour passer le test.
Exemple :
Vérifier si la touché de validation du clavier est appuiée, Par défaut cette touche est ENTER.
if (m_gameSystem.isPressed(is::GameSystem::ValidationButton::KEYBOARD))
{
// do something
}
Vérifier si le bouton de validation de la souris est appuié, Par défaut c’est le bouton GAUCHE.
75
if (m_gameSystem.isPressed(is::GameSystem::ValidationButton::MOUSE)
{
// do something
}
2.4 keyIsPressed
Première forme
bool keyIsPressed(sf::Keyboard::Key key) const
Code Source
Vérifiez si la touche du clavier est enfoncée.
Retourne vrais si la touche est enfoncée, faux sinon.
Deuxième forme
bool keyIsPressed(sf::Mouse::Button button) const
Code Source
Vérifiez si le bouton de la souris est enfoncé.
Retourne vrais si le bouton est enfoncé, faux sinon.
2.5 fileExist
bool fileExist(std::string const &fileName) const
Code Source
Retourne vrai si le fichier existe, faux si non.
2.6 playSound
void playSound(sf::Sound &obj)
Code Source
Permet de jouer un son si l'option est activée.
2.7 GSMplaySound
virtual void GSMplaySound(const std::string& name)
Code Source
Permet de jouer un son gérer par le conteneur GSM du GameSystem si l'option est activée.
2.8 playMusic
void playMusic(sf::Music &obj)
Code Source
Permet de jouer une musique si l'option est activée.
2.9 GSMplayMusic
virtual void GSMplayMusic(const std::string& name)
76
Code Source
Permet de jouer une musique gérer par le conteneur GSM du GameSystem si l'option est activée.
2.10 stopSound
void stopSound(sf::Sound &obj)
Code Source
Permet de stopper un son.
2.11 stopMusic
void stopSound(sf::Music &obj)
Code Source
Permet de stopper une musique.
2.12 useVibrate
void useVibrate(short ms)
Code Source
Permet d'utiliser le vibreur si l'option est activée (uniquement pour Android).
Paramètre ms représente la durée du vibreur en milliseconde.
2.13 saveConfig
void saveConfig(std::string const &fileName)
Code Source
Sauvegarde les données de configurations du jeu.
2.14 loadConfig
void loadConfig(std::string const &fileName)
Code Source
Charge les données de configurations du jeu.
2.15 savePadConfig
void savePadConfig(std::string const &fileName)
Code Source
Enregistre les données de configuration du Game Pad Virtuel.
2.16 loadPadConfig
void loadPadConfig(std::string const &fileName)
Code Source
Charge les données de configuration du Game Pad Virtuel.
2.17 m_disableKey
77
bool m_disableKey
Code Source
S’il est vrai toutes les fonctions du moteur qui gèrent les entrées (clavier, souris, tactile) sont désactivées.
2.18 m_enableSound
bool m_enableSound
Code Source
Permet de savoir si le son est activé.
2.19 m_enableMusic
bool m_enableMusic
Code Source
Permet de savoir si la musique est activée.
2.20 m_enableVibrate
bool m_enableVibrate
Code Source
Permet de savoir si le vibreur est activé.
2.21 m_keyIsPressed
bool m_keyIsPressed
Code Source
Permet de savoir si une touche / un bouton a été enfoncée.
2.22 m_firstLaunch
bool m_firstLaunch
Code Source
Permet de vérifier si le jeu a été lancé au moins une fois.
2.23 m_validationMouseKey
sf::Mouse::Button m_validationMouseKey
Code Source
Représente la variable qui stocke le boutton de validation de la souris.
2.24 m_validationKeyboardKey
sf::Keyboard::Key m_validationKeyboardKey
Code Source
Représente la variable qui stocke la touche de validation du clavier.
2.25 m_gameLanguage
78
int m_gameLanguage
Code Source
Représente l'index de la langue choisie.
2.26 m_padAlpha
int m_padAlpha
Code Source
Permet de modifier la transparence du Game Pad Virtuel.
Game System Extended
1. class GameSystemExtended
class GameSystemExtended;
Entête : app_src/gamesystem_ext/GameSystemExtended.h
Code Source
Classe dérivée de GameSystem (cliquer ici 1 pour plus d’info), elle assure le même rôle que son parent. Sa
particularité est qu’elle contient de nouveaux éléments qui serviront à gérer le game play et à manipuler les différentes
scènes de jeu.
2. Les éléments de GameSystemExtended
2.1 GameSystemExtended
GameSystemExtended()
Code Source
Constructeur par défaut.
2.2 initSystemData
void initSystemData()
Code Source
Initialise les données liées au moteur de jeu.
2.3 initProgress
void initProgress()
Code Source
Initialise les données de progression du jeu.
2.4 initData
void initData(bool clearCurrentLevel = true)
Code Source
Initialise les données de game play (score, vie, …).
79
2.5 saveData
void saveData(std::string const &fileName)
Code Source
Sauvagarde les données du jeu.
2.6 loadData
void loadData(std::string const &fileName)
Code Source
Charge les données du jeu.
2.7 m_launchOption
DisplayOption m_launchOption
Code Source
Détermine l’action (cliquer ici 1 pour voir les actions) qui sera effectuée sur les différentes scènes du jeu.
2.8 game play variables
int m_gameProgression
int m_levelNumber
int m_currentLevel
int m_currentLives
int m_currentBonus
int m_currentScore
int m_levelTime
Code Source
Les variables globales du jeu.
Game Function
Entête : isEngine/system/function/GameFunction.h
Ces fonctions du moteur permettent de faire des conversions sur les chaines de caractères, manipuler le temps,
manipuler les objets SFML, afficher des texts spéciaux, utiliser certaines fonctionnaltés d’Android, faire des calculs
géométriques, faire des tests sur des variables, utiliser des fonctions pour manipuler des valeurs aléatoires, …
1. Fonction Générale
1.1 VALUE_CONVERSION
static float const VALUE_CONVERSION(65.f);
Code Source
Agit sur le timing des compteurs.
Exemple:
Ceci créer un compteur en milliseconde quand on le met dans la boucle de mise à jour
// msCpt est une variable de type entier
80
msCpt += (is::VALUE_CONVERSION * 1.538f) * DELTA_TIME; // DELTA_TIME est le temps d’éxécution renvoyé par la
machine
1.2 SECOND
static float const SECOND(59.f);
Code Source
Représente une seconde.
1.3 WITH
#define WITH(_SIZE)
Code Source
Permet de parcourir un tableau de vector. _I est le compteur.
Exemple:
WITH(vectoreArray.size())
{
vectoreArray[_I]->function(…);
}
1.4 closeApplication
void closeApplication()
Code Source
Permet de quitter l’application.
1.5 w_chart_tToStr
std::string w_chart_tToStr(wchar_t const *str)
Code Source
Convertie un w_chart_t en std::string.
1.6 strToWStr
std::wstring strToWStr(const std::string &str)
Code Source
Convertie un std::string en std::wstring.
1.7 numToStr
template < typename T>
std::string numToStr(T val)
Code Source
Convertie un numérique en un std::string.
1.8 strToNum
template <typename T>
81
T strToNum(const std::string &str)
Code Source
Convertie un std::string en un numérique.
1.9 numToWStr
template < typename T>
std::wstring numToWStr(T val)
Code Source
Convertie un numérique en un std::wstring.
1.10 writeZero
template < typename T>
std::string writeZero(T val, int zeroNumber = 1)
Code Source
Dessine des zeros devant un nombre.
Paramètre zeroNumber représente le nombre de zéro à afficher.
Exemple :
int var(7);
std::cout << is::writeZero(var, 2) << std::endl; // sa affiche dans la console “007”
1.11 getMSecond
int getMSecond(float const &DELTA_TIME)
Code Source
Retourne le temps d’exécution en milliseconde.
1.12 makeTime
std::tm makeTime(int year, int month, int day)
Code Source
Retourne une structure tm qui représente la date.
1.13 showLog
void showLog(const std::string& str, bool stopApplication = false)
Code Source
Affiche des messages dans la console. Si stopApplication est vrai il arrête l’application.
1.14 arraySize
template <size_t SIZE, class T>
82
inline size_t arraySize(T (&arr)[SIZE])
Code Source
Retourne la taille d’un tableau.
1.15 choose
template <typename T>
T choose(unsigned short valNumber, T x1, T x2, T x3 = 0, T x4 = 0, T x5 = 0, T x6 = 0, T x7 = 0, T x8 = 0, T x9 = 0)
Code Source
Permet de faire le choix d’une valeur de façon aléatoire.
Paramètre valNumber le nombre valeur à tester.
Exemple :
std::cout << is:: choose(3, 7, 12, 4) << std::endl; // sa affiche dans la console de façon aléatoire 7 ou 12 ou 4
1.16 random
inline int random(unsigned int limit)
Code Source
Retourne une valeur aléatoire en fonction de la limite.
1.17 setVarLimit
template <typename T>
void setVarLimit(T &var, T valMin, T valMax)
Code Source
Permet d’encadrer une valeur.
1.18 isIn
bool isIn(unsigned short valNumber, int const var, int x1, int x2, int x3 = 0, int x4 = 0, int x5 = 0, int x6 = 0, int x7 = 0, int
x8 = 0, int x9 = 0)
Code Source
Vérifie si la valeur d’une variable se trouve dans un ensemble de valeur.
Exemple :
int year(2020);
if (is::isIn(3, year, 2020, 2005, 2000)) // cette condition sera vraie car la valeur de year ce trouve dans la fonction
{
// do something
}
1.19 isBetween
bool isBetween(float a, float b, float c)
83
Code Source
Vérifies si une valeur se trouve dans un intervalle.
1.20 isCrossing
bool isCrossing(float l1, float r1, float l2, float r2)
Code Source
Vérifie si un point intersecte un autre.
1.21 side
int side(Point m, Point a,Point b)
Code Source
Retourne -1 à gauche, 1 à droite, 0 si a b c sont alignés.
1.22 sign
int sign(float x)
Code Source
Retourne le signe de la valeur.
1.23 pointDirection
template <typename T>
T pointDirection(float x1, float y1, float x2, float y2)
Code Source
Determine l’angle entre deux points.
1.24 pointDistance
float pointDistance(float x1, float y1, float x2, float y2)
Code Source
Determine la distance entre deux points.
1.25 radToDeg
float radToDeg(float x)
Code Source
Convertie le radient en dégrée.
1.26 degToRad
float degToRad(float x)
Code Source
Convertie le dégrée en radiant.
1.27 lengthDirX
84
float lengthDirX(float dir, float angle)
Code Source
Retourne la composante de x.
1.28 lengthDirY
float lengthDirY(float dir, float angle)
Code Source
Retourne la composante de y.
1.29 increaseVar
template <typename T>
void increaseVar(const float &DELTA_TIME, T &var, T increaseValue, T varFinal, T varMax)
Code Source
Incrémente une variable avec le temps d’éxécution.
Exemple :
int var(0);
is::increaseVar(DELTA_TIME, var, 1, 15, 10)); // la variable “var” va s’incrémenter avec la valeur 1. Si elle est
// suppérieur à 10 elle devient 15 et l’incrémentation s’arrête
1.30 decreaseVar
template <typename T>
void decreaseVar(const float &DELTA_TIME, T &var, T decreaseValue, T varFinal = 0, T varMin = 0)
Code Source
Décrémente une variable avec le temps d’éxécution.
Exemple :
int var(40);
is::decreaseVar(DELTA_TIME, var, 1, 20, 25)); // la variable “var” va se décrémenter avec la valeur 1. Si elle est
// inférieur à 25 elle devient 20 et la décrémentation s’arrête
1.31 collisionTest
bool collisionTest(Rectangle const &a, Rectangle const &b)
bool collisionTest(Circle const &a, Circle const &b)
bool collisionTest(Circle const &circle, Rectangle const &rec)
bool collisionTest(Rectangle const &rec, Circle const &circle)
Code Source
Test la collision entre le masque de collision Rectange et Cercle.
2. Fonction sur les objets SFML
85
2.1 setVector2
template <class T1, typename T2>
void setVector2(T1 &v, T2 x, T2 y)
Code Source
Definie la valeur x et y d’une classe de type Vector2 (Vector2f, Vector2i, …).
2.2 getSFMLObjAngle
template <class T>
float getSFMLObjAngle(T obj)
Code Source
Retourne l’angle de l’objet.
2.3 getSFMLObjXScale
template <class T>
float getSFMLObjXScale(T obj)
Code Source
Retourne l’échelle x de l’objet.
2.4 getSFMLObjYScale
template <class T>
float getSFMLObjYScale(T obj)
Code Source
Retourne l’échelle y de l’objet.
2.5 getSFMLObjWidth
template <class T>
float getSFMLObjWidth(T obj)
Code Source
Retourne la largeur de l’objet.
2.6 getSFMLObjHeight
template <class T>
float getSFMLObjHeight(T obj)
Code Source
Retourne la hauteur de l’objet.
2.7 getSFMLTextureWidth
int getSFMTextureWidth(sf::Texture const &obj)
86
Code Source
Retourne la largeur d’une Texture.
2.8 getSFMLTextureHeight
int getSFMLTextureHeight(sf::Texture const &obj)
Code Source
Retourne la hauteur d’une Texture.
2.9 getSFMLObjOriginX
template <class T>
float getSFMLObjOriginX(T obj)
Code Source
Retourne l’origine en x.
2.10 getSFMLObjOriginY
template <class T>
float getSFMLObjOriginY(T obj)
Code Source
Retourne l’origine en y.
2.11 getSFMLObjX
Première forme
template <class T>
float getSFMLObjX(T obj)
Deuxième forme
template <class T>
float getSFMLObjX(T *obj)
Code Source
Retourne la position x.
2.12 getSFMLObjY
Première forme
template <class T>
float getSFMLObjY(T obj)
Deuxième forme
template <class T>
float getSFMLObjY(T *obj)
87
Code Source
Retourne la position y.
2.13 setSFMLObjAngle
template <class T>
void setSFMLObjAngle(T &obj, float angle)
Code Source
Définie l’angle.
2.14 setSFMLObjRotate
template <class T>
void setSFMLObjRotate(T &obj, float rotationSpeed)
Code Source
Définie la rotation de l’objet.
2.15 setSFMLObjScaleX_Y
template <class T>
void setSFMLObjScaleX_Y(T &obj, float x, float y)
Code Source
Définie l’échelle x et y.
2.16 setSFMLObjScale
template <class T>
void setSFMLObjScale(T &obj, float scale)
Code Source
Définie l’échelle x et y avec la même valeur.
2.17 setSFMLObjOrigin
template <class T>
void setSFMLObjOrigin(T &obj, float x, float y)
Code Source
Définie l’origine x et y.
2.18 setSFMLObjX
template <class T>
void setSFMLObjX(T &obj, float x)
Code Source
Définie la position x.
88
2.19 setSFMLObjY
template <class T>
void setSFMLObjY(T &obj, float y)
Code Source
Définie la position y.
2.20 centerSFMLObj
template <class T>
void centerSFMLObj(T &obj)
Code Source
Centrer l’objet en x et y.
2.21 centerSFMLObjX
template <class T>
void centerSFMLObjX(T &obj)
Code Source
Centrer l’objet en x.
2.22 centerSFMLObjY
template <class T>
void centerSFMLObjY(T &obj)
Code Source
Centrer l’objet en y.
2.23 setSFMLObjX_Y
Première forme
template <class T>
void setSFMLObjX_Y(T &obj, sf::Vector2f position)
Deuxième forme
template <class T>
void setSFMLObjX_Y(T &obj, float x, float y)
Code Source
Définie la position x et y.
2.24 moveSFMLObjX
template <class T>
void moveSFMLObjY(T &obj, float speed)
89
Code Source
Déplace l’objet SFML sur l’axe des x.
2.25 moveSFMLObjY
template <class T>
void moveSFMLObjY(T &obj, float speed)
Code Source
Déplace l’objet SFML sur l’axe des y.
2.26 setSFMLObjSize
Première forme
template <class T>
void setSFMLObjSize(T &obj, float x, float y)
Deuxième forme
template <class T>
void setSFMLObjSize(T &obj, sf::Vector2f v)
Code Source
Définie la taille de l’objet.
2.27 setSFMLObjAlpha
Première forme
template <class T>
void setSFMLObjAlpha(T &obj, unsigned int alpha)
Deuxième forme
template <class T>
void setSFMLObjAlpha(T &obj, unsigned int alpha, int r, int g, int b)
Troisième forme
template <class T>
void setSFMLObjAlpha(T &obj, unsigned int alpha, sf::Uint8 rgb)
Code Source
Définie la transparence. Peut générer des WARNING si on l’utilise sur des textes et des formes géométriques !
2.28 setSFMLObjAlpha2
template <class T>
void setSFMLObjAlpha2(T &obj, unsigned int alpha)
Code Source
90
Définie la transparence pour les objets de type texte, rectangles, ...Ne marche pas sur les sprite !
2.29 setSFMLObjColor
template <class T>
void setSFMLObjColor(T &obj, sf::Color color)
Code Source
Définie la couleur de l’objet (Sprite).
2.30 setSFMLObjFillColor
template <class T>
void setSFMLObjFillColor(T &obj, sf::Color color)
Code Source
Définie la couleur de l’objet (Texte, Rectangle, ..).
2.31 scaleAnimation
template <class T>
void scaleAnimation(float const &DELTA_TIME, float &var, T &obj, short varSign = 1, float scaleSize = 1.f)
Code Source
Permet de faire une animation d’étirement sur un objet SFML.
2.32 setFrame
void setFrame(sf::Sprite &sprite, float frame, int subFrame, int frameSize, int recWidth, int recHeight)
void setFrame(sf::Sprite &sprite, float frame, int subFrame, int frameSize)
Code Source
Définie l’animation d’un sprite (cliquer ici Error! Reference source not found. pour voir comment on l’utilise).
2.33 setSFMLObjOutlineColor
template <class T>
void setSFMLObjOutlineColor(T &obj, sf::Color color, float thickness = 1.f)
Code Source
Définie la couleur de contour et sa taille.
2.34 setSFMLObjTexRec
template <class T>
void setSFMLObjTexRec(T &obj, int x, int y, int w, int h)
Code Source
Définie le intRect.
2.35 setSFMLObjProperties
91
void setSFMLObjProperties(sf::Sprite &obj, float x, float y, float angle = 0.f, int alpha = 255, float xScale = 1.f, float yScale
= 1.f)
void setSFMLObjProperties(sf::Text &obj, float x, float y, float angle = 0.f, int alpha = 255, float xScale = 1.f, float yScale =
1.f)
void setSFMLObjProperties(sf::RectangleShape &obj, float x, float y, float angle = 0.f, int alpha = 255, float xScale = 1.f,
float yScale = 1.f)
void setSFMLObjProperties(sf::CircleShape &obj, float x, float y, float angle = 0.f, int alpha = 255, float xScale = 1.f, float
yScale = 1.f)
Code Source
Définie les diverses propriétés d’un objet SFML.
2.36 loadSFMLTexture
void loadSFMLTexture(sf::Texture &obj, const std::string& filePath)
Code Source
Permet de charger une Texture.
2.37 loadSFMLFont
void loadSFMLFont(sf::Font &obj, const std::string& filePath)
Code Source
Permet de charger une Font.
2.38 loadSFMLSoundBuffer
void loadSFMLSoundBuffer(sf::SoundBuffer &obj, const std::string& filePath)
void loadSFMLSoundBuffer(sf::SoundBuffer &sb, sf::Sound &snd, const std::string& filePath)
Code Source
Le premier : Permet de charger un SoundBuffer.
Le second : Permet de charger un SoundBuffer et de l’associer à un son.
2.39 loadSFMLMusic
void loadSFMLMusic(sf::Music &obj, const std::string& filePath)
Code Source
Permet de charger une Music.
2.40 checkSFMLSndState
enum SFMLSndStatus
{
Playing,
Stopped,
Paused
};
template <class T>
bool checkSFMLSndState(T &obj, SFMLSndStatus state)
92
bool checkSFMLSndState(T *obj, SFMLSndStatus state)
Code Source
Retourne l’état du son.
2.41 playSFMLsnd
template <class T>
void playSFMLSnd(T &obj)
void playSFMLSnd(T *obj)
Code Source
Permet de jouer un son / musique.
2.42 stopSFMLsnd
template <class T>
void stopSFMLSnd(T &obj)
void stopSFMLSnd(T *obj)
Code Source
Permet d’arrêter un son / musique.
2.43 pauseSFMLsnd
template <class T>
void pauseSFMLSnd(T &obj)
void pauseSFMLSnd(T *obj)
Code Source
Permet de mettre en pause un son / musique.
2.44 loopSFMLsnd
template <class T>
void loopSFMLSnd(T &obj)
void loopSFMLSnd(T *obj)
Code Source
Permet de repéter un son / musique.
2.45 collisionTestSFML
template <class A, class B>
bool collisionTestSFML(A const &objA, B const &objB)
Code Source
Test la collision entre deux (2) objets SFML.
93
2.46 createRectangle
void createRectangle(sf::RectangleShape &rec, sf::Vector2f recSize, sf::Color color, float x = 0.f, float y = 0.f, bool center =
true)
Code Source
Créer un rectangle avec divers paramètres.
2.47 textStyleConfig
void textStyleConfig(sf::Text &txt, bool underLined, bool boldText, bool italicText)
Code Source
Définie le style d’un texte.
2.48 createText
Première forme
template <class T> void createText(sf::Font const& fnt, sf::Text &txt, T const &text, float x, float y, int txtSize =
DEFAULT_SFML_TEXT_SIZE, bool underLined = false, bool boldText = false, bool italicText = false)
Deuxième forme
template <class T> void createText(sf::Font const& fnt, sf::Text &txt, T const &text, float x, float y, bool centerText, int
txtSize = DEFAULT_SFML_TEXT_SIZE, bool underLined = false, bool boldText = false, bool italicText = false)
Troisième forme
template <class T> void createText(sf::Font const& fnt, sf::Text &txt, T const &text, float x, float y, sf::Color color, int
txtSize = DEFAULT_SFML_TEXT_SIZE, bool underLined = false, bool boldText = false, bool italicText = false)
Quatrième forme
template <class T> void createText(sf::Font const& fnt, sf::Text &txt, T const &text, float x, float y, sf::Color color, bool
centerText, int txtSize = DEFAULT_SFML_TEXT_SIZE, bool underLined = false, bool boldText = false, bool italicText =
false)
Cinquième forme
template <class T> void createText(sf::Font const& fnt, sf::Text &txt, T const &text, float x, float y, sf::Color color ,
sf::Color outlineColor, bool centerText, int txtSize = DEFAULT_SFML_TEXT_SIZE, float outlineThickness = 1.f, bool
underLined = false, bool boldText = false, bool italicText = false)
Code Source
Ces fonctions permettent de créer un texte avec divers paramètres.
2.49 createSprite
Première forme
void createSprite(sf::Texture &tex, sf::Sprite &spr, sf::Vector2f position, sf::Vector2f origin, bool smooth = true)
Deuxième forme
void createSprite(sf::Texture &tex, sf::Sprite &spr, sf::IntRect rec, sf::Vector2f position, sf::Vector2f origin, bool
repeatTexture = false, bool smooth = true)
Troisième forme
94
void createSprite(sf::Texture &tex, sf::Sprite &spr, sf::IntRect rec, sf::Vector2f position, sf::Vector2f origin, sf::Vector2f
scale, unsigned int alpha = 255, bool repeatTexture = false, bool smooth = true)
Code Source
Ces fonctions permettent de créer un sprite avec divers paramètres.
2.50 getCursor
sf::Vector2f getCursor(sf::RenderWindow &window
#if defined(__ANDROID__)
, unsigned int finger = 0
#endif
)
Code Source
Retourne la position de la sourie (toucher sur Android). finger représente l’index du doigt.
2.51 mouseCollision
Première forme
template <class T>
bool mouseCollision(sf::RenderWindow &window, T const &obj
#if defined(__ANDROID__)
, unsigned int finger = 0
#endif
)
Code Source
Windows, Linux : Détecte si le curseur de la souris est en collision avec un objet de la fenêtre.
Android : Détecte si l’utilisateur touche un objet de la fenêtre.
Paramètre :
obj l’objet avec lequel on veut faire le test.
finger représente l’index du doigt.
Retourne vrais si il y a collision et faux si non.
Exemple :
if (mouseCollision(window, sprite))
{
// do something
}
Deuxième forme
template <class T>
95
bool mouseCollision(sf::RenderWindow &window, T const &obj, sf::Vector2f &position
#if defined(__ANDROID__)
, unsigned int finger = 0
#endif
)
Code Source
Windows, Linux : Détecte si le curseur de la souris est en collision avec un objet de la fenêtre.
Android : Détecte si l’utilisateur touche un objet de la fenêtre.
Paramètre :
obj l’objet avec lequel on veut faire le test.
position permet de récupérer la position du point de collision.
finger représente l’index du doigt.
Retourne vrais si il y a collision et faux si non.
Exemple :
sf::ReactangleShape rec;
if (mouseCollision(window, sprite, rec))
{
float cursorXPosition = rec.getPosition.x();
float cursorYPosition = rec.getPosition.y();
}
3. Autres fonctions
3.1 clear
template <class T2, class T2>
void clear(T &render, T2 color)
Code Source
Permet d’éffacer le rendu avec une couleur.
3.2 draw
template < class T2, class T2>
void draw(T1 &render, T2 &obj)
void draw(T1 &render, T2 *obj)
Code Source
Permet déssiner un objet sur le rendu.
3.3 display
template <class T>
96
void display(T &render)
Code Source
Permet d’afficher le rendu.
3.4 setFPS
template <class T>
void setFPS(T &render, float fps)
Code Source
Permet de définir le nombre d’image par seconde de jeu.
3.5 vibrate
int vibrate(short duration)
Code Source
Lance le vibreur Android.
3.6 openURL
void openURL(const std::string& url)
Code Source
Ouvre un url dans le navigateur (e.g www.website.com).
3.7 jstring2string
static std::string jstring2string(JNIEnv *env, jstring jStr)
Code Source
Convertie jstring en std::string.
3.8 getDeviceId
static std::string getDeviceId(JNIEnv *env, ANativeActivity *activity)
Code Source
Retourne l’id du périphérique Android.
Bibliothèque externe
1. Tiny File Dialogs (uniquement pour Windows et Linux)
2.1 class TinyDialogBox
class TinyDialogBox;
Entête : isEngine/ext_lib/TinyFileDialogs/TinyDialogsBox.h
Code Source
97
Classe qui permet d’utiliser la bibliothèque TinyFileDialogs de la façon la plus simple. Elle vous permet d’utiliser les
boites de dialogue du système d’exploitation (Windows et Linux).
2.2 tinyString
#if !defined(SFML_SYSTEM_LINUX)
typedef wchar_t const* tinyString;
#else
typedef char const* tinyString;
#endif
Code Source
Type personnalisé qui permet de manipuler les données de tinyFileDialogs. Lorsqu’on utilise tinyFileDialogs les
données diffèrent en fonction du système d’exploitation. Sur windows les chaines de caractères deviennent des wchar_t
const* et sur Linux des char const*, ce qui implique l’utilisation de deux (2) types differents ayant le même but pour un
même programme. Le type tinyString permet de palier à ce problème en déterminant automatiquement le type qui
correspond au système d’exploitation cible.
2.3 TINY_FILE_DIALOGBOX_PATH
static tinyString TINY_FILE_DIALOGBOX_PATH;
Code Source
Stocke le chemin du fichier de la boite de dialogue.
2.4 enum FileDialogType
enum FileDialogType;
Enumérateur
SAVE_FILE
Sauvegarde fichier
LOAD_FILE
Charger fichier
Code Source
Représente le type de boite de dialogue à afficher.
2.5 enum DialogType
enum DialogType;
Enumérateur
OK
Message avec bouton OK
OKCANCEL
Message avec bouton OK et CANCEL
YESNO
Message avec bouton YES et NO
Code Source
Représente les boutons qui seront affichés sur la boite de dialogue.
2.6 enum IconType
enum IconType;
98
Enumérateur
INFO
Boite de dialogue avec une icône INFO
WARNING
Boite de dialogue avec une icône WARNING
ERROR_ICO
Boite de dialogue avec une icône ERROR
QUESTION
Boite de dialogue avec une icône QUESTION
Code Source
Représente l’icône qui sera affichée sur la boite de dialogue.
2.7 enumDialogTypeToStr / enumIconTypeToStr
static tinyString const enumDialogTypeToStr(DialogType val)
static tinyString const enumIconTypeToStr(IconType val)
Code Source
Ces fonctions convertissent les enum en chaine de caractère pour les passés plus tard dans les fonctions de la
bibliothèque.
2.8 showDialogBox
static int showDialogBox(const std::string& title,
const std::string& msg,
DialogType dialogType,
IconType iconType
)
Code Source
Affiche une boite de dialogue de type message.
Retourne 1 lorsque l'utilisateur clique sur le bouton OK et 0 lorsqu’il clique sur CANCEL ou NO.
2.9 showFileDialogBox
static std::string showFileDialogBox(FileDialogType type,
const std::string& title,
tinyString filterPatterns[],
const std::string& fileName = "file",
const std::string& msgError = "Unable to access file!",
const std::string& errTitle = "Error"
)
Code Source
Affiche une boîte de dialogue de type fichier.
Retourne le chemin du fichier si la fonction a réussi et "" (chaîne vide) si non.
99
2.10 showFolderDialogBox
static std::string showFolderDialogBox(const std::string& title,
const std::string& defaultPath
#if !defined(SFML_SYSTEM_LINUX)
= L"C:\\",
#else
= L"/home/",
#endif
const std::string& msgError = "Unable to access folder!",
const std::string& errTitle = "Error"
)
Code Source
Affiche une boite de dialogue de type sélection dossier.
Retourne le chemin du dossier si la fonction a réussi et "" (chaîne vide) si non.
2. Box 2D
Box 2D est un moteur physique integer au moteur de jeu. Pour l’utiliser dans une scène vous devez l’inclure de cette
façon :
#include "../../../isEngine/ext_lib/Box2D/Box2D.h"
3. TMXLite
TMXLite est une bibliothèque qui vous permet d’utiliser l’editeur Tiled avec le moteur de jeu. Pour l’utiliser dans une
scène vous devez l’inclure de cette façon :
#include "../../../isEngine/ext_lib/TMXLite/Map.hpp"
Game Engine
1. class GameEngine
class GameEngine;
Entête : isEngine/core/GameEngine.h
Code Source
Cette Classe assure l’interconnexion des différents composants du moteur et lance la boucle de rendu dans laquelle le
jeu va se dérouler.
2. Les méthodes de GameEngine
2.1 GameEngine
GameEngine()
100
Code Source
Constructeur par défaut.
2.2 initEngine
bool initEngine()
Code Source
Initialise le moteur de jeu.
2.3 play
bool play()
Code Source
Boucle de rendu principal du moteur.
2.4 basicSFMLmain
bool basicSFMLmain()
Code Source
Boucle de rendu d’une fenêtre SFML classique.
2.5 getRenderWindow
sf::RenderWindow& getRenderWindow()
Code Source
Retourne la fenêtre SFML.
Configuration du jeu
namespace GameConfig;
Entête : app_src/config/GameConfig.h
Permet de définir des paramètres pour préconfigurer ces parties du jeu : La taille de la fenêtre et de la vue, Les touches
du clavier et de la souris à utiliser pour commander le jeu, les informations du jeu (nom, auteur, version), chemin des
fichiers ressources (son, image, sauvegarde, …) et les informations d’Admob.
1. enum DisplayOption
enum DisplayOption;
Enumérateur
RESUME_GAME
Quand le joueur ferme le menu pause
GAME_OPTION_RESTART
Recommence la scène avec l’option restart
QUIT_GAME
Quand le joueur utilise l’option quitter
INTRO
Accède à la scène d'introduction
RESTART_LEVEL
Recommence la scène quand on perd
NEXT_LEVEL
Aller au niveau suivant
MAIN_MENU
Accède à la scène Menu Principal
GAME_LEVEL
Accède à la scène Game Level
101
GAME_OVER
Accède à la scène Game Over
GAME_END_SCREEN
Accède à la scène Fin du jeu
Code Source
Permet de manipuler les différentes scènes et le menu pause du jeu.
2. Paramètre de la fenêtre
2.1 WINDOW_WIDTH
static const unsigned int WINDOW_WIDTH
Code Source
Définie la largeur de la fenêtre.
2.2 WINDOW_HEIGHT
static const unsigned int WINDOW_HEIGHT
Code Source
Définie la hauteur de la fenêtre.
2.3 VIEW_WIDTH
static const float VIEW_WIDTH
Code Source
Définie la largeur de la vue.
2.4 VIEW_HEIGHT
static const float VIEW_HEIGHT
Code Source
Définie la hauteur de la vue.
2.5 FPS
static const float FPS
Code Source
Définie le FPS (Frame Per Second) du jeu.
2.6 WINDOW_SETTINGS
static const is::WindowStyle WINDOW_SETTINGS
Code Source
Définie le style de la fenêtre.
3. Paramètre des boutons de validation
3.1 KEY_VALIDATION_MOUSE
static const sf::Mouse::Button KEY_VALIDATION_MOUSE
102
Code Source
Représente le bouton qui valide les options avec la souris.
3.2 KEY_VALIDATION_KEYBOARD
static const sf::Keyboard::Key KEY_VALIDATION_KEYBOARD
Code Source
Représente la touche qui valide les options avec le clavier.
3.3 KEY_CANCEL
static const sf::Keyboard::Key KEY_CANCEL
Code Source
Représente la touche qui annule les options avec le clavier.
4. Paramètre des touches du clavier
4.1 KEY_A
static const sf::Keyboard::Key KEY_A
Code Source
Représente la touche du bouton A.
4.2 KEY_B
static const sf::Keyboard::Key KEY_B
Code Source
Représente la touche du bouton B.
4.3 KEY_LEFT
static const sf::Keyboard::Key KEY_LEFT
Code Source
Représente la touche directionnelle GAUCHE.
4.4 KEY_RIGHT
static const sf::Keyboard::Key KEY_RIGHT
Code Source
Représente la touche directionnelle DROITE.
4.5 KEY_UP
static const sf::Keyboard::Key KEY_UP
Code Source
Représente la touche directionnelle HAUT.
4.6 KEY_DOWN
103
static const sf::Keyboard::Key KEY_DOWN
Code Source
Représente la touche directionnelle BAS.
5. Valeur par defaut des composants SFML
5.1 DEFAULT_SFML_TEXT_SIZE
static const DEFAULT_SFML_TEXT_SIZE
Code Source
Définie la taille par defaut des objets textes SFML.
5.2 DEFAULT_SFML_TEXT_COLOR
static const sf::Color &DEFAULT_SFML_TEXT_COLOR
Code Source
Définie la couleur par defaut des objets textes SFML.
5.3 DEFAULT_SFML_SELECTED_TEXT_COLOR
static const sf::Color &DEFAULT_SFML_SELECTED_TEXT_COLOR
Code Source
Définie la couleur par defaut des objets textes SFML quand on les selectionnent.
5.4 DEFAULT_MSG_BOX_TEXT_COLOR
static const sf::Color &DEFAULT_MSG_BOX_TEXT_COLOR
Code Source
Définie la couleur par defaut des objets textes SFML pour la boite de dialogue.
5.5 DEFAULT_MSG_BOX_SELECTED_TEXT_COLOR
static const sf::Color &DEFAULT_MSG_BOX_SELECTED_TEXT_COLOR
Code Source
Définie la couleur par defaut des objets textes SFML pour la boite de dialogue quand on les selectionnent.
5.6 DEFAULT_RPG_DIALOG_TEXT_COLOR
static const sf::Color &DEFAULT_RPG_DIALOG_TEXT_COLOR
Code Source
Définie la couleur par defaut des objets textes SFML pour la boite de dialogue RPG.
5.7 DEFAULT_RPG_DIALOG_SELECTED_TEXT_COLOR
static const sf::Color &DEFAULT_RPG_DIALOG_SELECTED_TEXT_COLOR
Code Source
Définie la couleur par defaut des objets textes SFML (bouton Passer) pour la boite de dialogue RPG.
104
5.8 DEFAULT_BUTTON_TEXT_COLOR
static const sf::Color & DEFAULT_BUTTON_TEXT_COLOR
Code Source
Définie la couleur par defaut des textes des boutons.
6. Les informations du jeu
6.1 MAJOR
static const std::string MAJOR
Code Source
Définie la version majeur.
6.2 MINOR
static const std::string MINOR
Code Source
Définie la version mineur.
6.3 getGameVersion
inline std::string getGameVersion()
Code Source
Retourne la version du jeu.
6.4 GAME_NAME
static std::wstring const GAME_NAME
Code Source
Définie le nom du jeu.
6.5 GAME_AUTHOR
static std::wstring const GAME_AUTHOR
Code Source
Définie le nom de l’auteur.
7. Paramètre Admob
namespace AdmobConfig;
Permet de définir les informations d’Admob pour pouvoir afficher les annonces dans le jeu. Ces informations sont
fournies sur la plateforme de Google Admob !
7.1 Id de la PUB
7.1.1 kAdMobAppID
static const char* kAdMobAppID
Code Source
105
Code de l’application Admob.
7.1.2 kBannerAdUnit
static const char* kBannerAdUnit
Code Source
Code de la bannière.
7.1.3 kRewardedVideoAdUnit
static const char* kRewardedVideoAdUnit
Code Source
Code de la vidéo récompense.
7.2 Taille de la bannière de PUB
7.2.1 kBannerWidth
static const int kBannerWidth
Code Source
Définie la largeur de la bannière d’annonce.
7.2.2 kBannerHeight
static const int kBannerHeight
Code Source
Définie la hauteur de la bannière d’annonce.
7.3 Publique cible de la PUB
7.3.1 kBirthdayDay
static const int kBirthdayDay
Code Source
Définie le jour de naissance des utilisateurs.
7.3.2 kBirthdayMonth
static const int kBirthdayMonth
Code Source
Définie le mois de naissance des utilisateurs.
7.3.3 kBirthdayYear
static const int kBirthdayYear
Code Source
Définie l’année de naissance des utilisateurs.
7.3.4 kKeywords
static const char* kKeywords[]
106
Code Source
Mots-clés à utiliser pour faire la demande d’une annonce.
8. Chemin des fichiers ressources du jeu
8.1 ASSETS_DIR
static std::string const ASSETS_DIR
Code Source
Racine des fichiers ressources.
8.2 GUI_DIR
static std::string const GUI_DIR
Code Source
Chemin des fichiers ressources qui servent d'interface graphique.
8.3 FONT_DIR
static std::string const FONT_DIR
Code Source
Chemin des fichiers ressources qui servent de police.
8.4 SPRITES_DIR
static std::string const SPRITES_DIR
Code Source
Chemin des fichiers ressources qui servent de Sprite.
8.5 TILES_DIR
static std::string const TILES_DIR
Code Source
Chemin des fichiers ressources qui servent de tuiles et d'arrière-plan.
8.6 SFX_DIR
static std::string const SFX_DIR
Code Source
Chemin des fichiers ressources qui servent de SFX.
8.7 MUSIC_DIR
static std::string const MUSIC_DIR
Code Source
Chemin des fichiers ressources qui servent de musique.
8.8 TMX_RSC_DIR
107
static std::string const TMX_RSC_DIR
Code Source
Chemin des fichiers ressources de la bibliothèque TMX Loader et Lite.
9. Nom du package du jeu (Android)
static std::string const PACKAGE_NAME
Code Source
Nom du package du jeu. Représente l'endroit où vos données seront enregistrées sur Android.
Vous devez appliquer ce nom pour l'applicationId dans le fichier build.gradle
10. Chemin des fichiers de sauvegarde
10.1 DATA_PARENT_DIR
static std::string const DATA_PARENT_DIR
Code Source
Racine des fichiers de sauvegarde du jeu.
10.2 GAME_DATA_FILE
static std::string const GAME_DATA_FILE
Code Source
Chemin pour enregistrer le fichier de sauvegarde du jeu.
10.3 CONFIG_FILE
static std::string const CONFIG_FILE
Code Source
Chemin pour enregistrer le fichier de configuration du jeu.
10.4 GAME_PAD_FILE
static std::string const GAME_PAD_FILE
Code Source
Chemin pour enregistrer le fichier de configuration du Game Pad Virtuel sur Android.
Activité
1. class GameActivity
class GameActivity;
Entête : app_src/activity/GameActivity.h
Code Source
108
Permet de lancer les différentes scènes de jeu. Une autre particularité de cette classe est qu’elle relie les scènes du
moteur.
2. Les éléments de GameActivity;
2.1 GameActivity
GameActivity(GameSystemExtended &gameSysExt)
Code Source
Constructeur de la classe, elle prend en paramètre le gestionnaire du système de jeu (cliquer ici 1 pour plus d’info).
2.2 m_gameScene
std::shared_ptr<is::GameDisplay> m_gameScene;
Code Source
Instance de la scène qui sera utilisée.
2.3 onUpdate
virtual void onUpdate()
Code Source
Sert à mettre à jour les informations de la scène.
2.4 onDraw
virtual void onDraw()
Code Source
Permet d’afficher la scène.
Niveau
1. Les niveaux
Dans is::Engine les niveaux du jeu sont des tableaux d’entier contenus dans des fichiers entête (fichier.h). Ces niveaux
sont créés grâce à l’éditeur de niveau is::Engine Level Editor (lien du projet) qui est livré avec le moteur.
Entête : app_src/levels/Level.h
2. Intégration d’un niveau
Pour intégrer un niveau on inclut son entête dans le fichier Level.h de cette façon :
#include "../levels/level_1.h"
3. Les éléments pour gérer les niveaux
3.1 namespace level
namespace level;
Code Source
Permet d’utiliser les contenus qui permettent de gérer les niveaux.
109
3.2 enum LevelId
enum LevelId
{
LEVEL_1,
LEVEL_2,
/* … */
, LEVEL_MAX // Permet de connaitre le nombre total de niveau intégré
}
Code Source
Représente l’index de chaque niveau. A chaque fois qu’un nouveau niveau est intégré au moteur on doit déclarer son
index.
3.3 getLevelMap
inline short const* getLevelMap(int CURRENT_LEVEL)
Code Source
Retourne le tableau du niveau renseigné dans le paramètre.
A chaque fois qu’un nouveau niveau est intégré, on doit renseigner l’instruction qui renverra ce niveau dans la fonction.
Exemple :
Intégration dans la fonction :
// Renvoie le tableau du niveau qui se trouve dans level_1.h
inline short const* getLevelMap(int CURRENT_LEVEL)
{
switch (CURRENT_LEVEL)
{
case LEVEL_1 : return LEVEL_1_MAP; break; // LEVEL_1_MAP est le nom du tableau qui se trouve dans level_1.h
// ...
Utilisation dans un fichier source externe : (Ceci est un exemple simple juste pour vous expliquer le
principe. Pour aller plus loin, veuillez-vous référer à la Démo du moteur)
short *currentLevelArray = getLevelMap(LEVEL_1); // Retourne le tableau qui se trouve dans level_1.h
Langage du jeu
1. Les langues
Les langues sont représentées dans is::Engine par des tableaux de chaine.
Entête : app_src/language/GameLanguage.h
110
2. Les éléments pour gérer les langues
2.1 namespace Lang
namespace lang;
Code Source
Sert à gérer les langues du jeu.
2.2 enum GameLanguage
enum GameLanguage
{
ENGLISH, ///< Représente la langue Anglaise
FRANCAIS, ///< Représente la langue le française
/* … */
}
Code Source
Cette énumération permet d’implémenter l’index de chaque langue afin de pourvoir les utilisées plus facilement lors du
développement.
Exemple:
Créer une phrase:
static std::string hello_world[] = { "Hello World !", "Salut le monde !" }; // A mettre dans GameLanguage.h
Utilisation : (Ceci est un exemple simple juste pour vous expliquer le principe. Pour aller plus loin,
veuillez-vous référer à la Démo du moteur)
gameSystemExt.m_gameLanguage = is::lang::GameLanguage::ENGLISH; // Choix de la langue Anglaise
is::showLog(is::lang::hello_world[gameSystemExt.m_gameLanguage]); // on aura dans la console : Hello World !
gameSystemExt.m_gameLanguage = is::lang::GameLanguage::FRANCAIS; // Choix de la langue Française
is::showLog(is::lang::hello_world[gameSystemExt.m_gameLanguage]); // on aura dans la console : Salut le monde !"
Boite de Dialogue du jeu
1. class GameDialog
class GameDialog;
Entête : app_src/objects/widgets/GameDialog.h
Code Source
Classe qui permet d’afficher des boites de dialogue comme dans les jeux RPG. Elle est étroitement liée à la partie langue
du jeu (cliquer ici 1 pour plus d’info). Pour pouvoir afficher une dialogue vous devez définir un tableau de chaine
représentant ce dialogue dans GameLanguage.h.
2. Les éléments de GameDialog
111
2.1 GameDialog
GameDialog(sf::Texture &tex, sf::Font &fnt, is::GameDisplay *scene)
Code Source
Constructeur de la classe, elle prend en paramètre la texture, la police et la scène dans laquelle elle est utilisée.
2.2 enum DialogIndex
enum DialogIndex
{
DIALOG_NONE = -1,
DIALOG_PLAYER_MOVE, // Représente le dialogue qui parle de comment déplacer le joueur
/* … */
};
Code Source
Représente les différents dialogues qui seront affichés dans le jeu. Les informations qui sont définies à l’intérieur sont
liées à la partie langue du jeu.
A chaque fois qu’un index est ajouté on doit déclarer son tableau de chaine dans GameLanguage.h.
Exemple :
Déclaration du dialogue DIALOG_PLAYER_MOVE dans GameLanguage.h :
static std::wstring dialog_player_move[] = {L"Press LEFT or RIGHT to move.\n"
"Press A to Jump.",
L"Appuie sur GAUCHE ou DROITE pour te déplacer.\n"
"Appuie sur A pour sauter."};
2.3 linkArrayToEnum
void linkArrayToEnum()
Code Source
Relie le tableau de chaine qui se trouve dans GameLanguage.h et l’index du dialogue.
Exemple :
Lier un Index et son tableau de chaine : (Ceci est un exemple simple juste pour vous expliquer le principe.
Pour aller plus loin, veuillez-vous référer à la Démo du moteur)
void linkArrayToEnum()
{
// …
switch (m_dialogIndex)
{
112
case DIALOG_PLAYER_MOVE: // l’index du dialogue
m_msgIndexMax = is::arraySize(is::lang::dialog_player_move); // Détermine le nombre de phrase
checkMsg(is::lang::dialog_player_move); // Définir le dialogue grâce à son tableau de chaine
break;
// …
2.4 step
void step(const float &DELTA_TIME)
Code Source
Met à jour les informations de la boite de dialogue.
2.5 setDialog
void setDialog(DialogIndex dialogIndex)
Code Source
Définie le dialogue qui sera lancé.
2.6 setMouseInCollison
void setMouseInCollison(bool val)
Code Source
Force la collision du curseur de la souris ou le doigt de l’utilisateur (sur Android) avec la boite de dialogue.
2.7 draw
void draw(is::Render &surface)
Code Source
Affiche la boite de dialogue.
2.8 getDialogIndex
DialogIndex getDialogIndex() const
Code Source
Retourne l’enumérateur du dialogue qui est affiché.
2.9 getMouseInCollison
bool getMouseInCollison() const
Code Source
Retourne vrai quand le curseur de la souris ou le doigt de l’utilisateur (sur Android) touche la boite de dialogue, faux
si non.
2.10 showDialog
bool showDialog() const
113
Code Source
Retourne vrai quand la boite de dialogue est ouverte et faux si non.